37852

Стандартні компоненти і оброблювачі подій. Створення програм для процесів, що розгалужуються

Лабораторная работа

Информатика, кибернетика и программирование

Створення форми Створіть форму таку ж як у другій лабораторній роботі скорегувавши текст написів і положення вікон TEdit. 1 unit unit1; interfce uses Windows Messges SysUtils Vrints Clsses Grphics Controls Forms Dilogs StdCtrls ExtCtrls; type TForm1 = clssTForm Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Lbel1: TLbel; Lbel2: TLbel; Lbel3: TLbel; Lbel4: TLbel; Memo1: TMemo; Button1: TButton; CheckBox1: TCheckBox; RdioGroup1: TRdioGroup; Lbel5: TLbel;...

Украинкский

2013-09-25

177.5 KB

4 чел.

ЛАБОРАТОРНА РОБОТА №4

Тема роботи: Стандартні компоненти і оброблювачі подій. Створення програм для процесів, що розгалужуються.

Мета роботи: вивчити стандартні компоненти, організації переключень TCheckBox і TRadioGroup і оброблювачі подій FormCreate і ButtonClick. Створити з використанням згаданих компонентів інтерфейс і програму для заданого алгоритму, що розгалужується.

Рекомендована література:

  1.  Симонович С.В., Евсеев Г.А. Занимательное программирование:Delphi. – М.: АСТ-Пресс Книга; Издательство «Развитие», 2003. – 368 с.
  2.  Кен Хендерсон. Руководство Разработчика баз данных в Delphi 2. – К. Диалектика, 1997, - 543 с.

Контрольні запитання:

  1.  Які оператори мови Pascal описують процеси з розгалуженням?
  2.  В яких випадках доцільно викоритовувати оператор case?
  3.  Що називають кнопками-перемикачами?
  4.  Які види кнопок-перемикачів Ви знаєте?
  5.  За що відповдає компонент TcheckBox?
  6.  За що відповдає компонент TRadiogroup?
  7.  Що називають оброблювачем подій та як його створюють?

Хід роботи.

Ознайомтесь з теоретичними відомостями та створіть проект для лбораторної роботи №4. Звіт до лабораторної роботи повинен сладатися з коротких теоретичних відомостей, відповідей до контрольних запитань та програми.

Теоретичні відомості.

Кнопки-перемикачі в Delphi

При створенні програм у DELPHI для організації розгалужень часто використовуються компоненти у вигляді кнопок-перемикачів. Стан такої кнопки (включене - виключено) візуально відбивається на формі. На формі (рис. 1) представлені кнопки-перемикачі двох типів (TСheckBox і TRadioGroup ).

Компонент TCheckBox організує кнопку незалежного перемикача, за допомогою якої користувач може указати своє рішення типу так/ні. У програмі стан кнопки зв'язаний зі значенням булевої змінної, яка перевіряється за допомогою оператора if.

Компонент TRadiogroup організує групу кнопок залежних перемикачів. При натисканні однієї з кнопок групи всі інші кнопки відключаються. У програму передається номер включеної кнопки (0, 1, 2,..), що аналізується за допомогою оператора case.

Приклад програми

Завдання: Ввести три числа - x, y, z. Обчислити по розсуду або u=sin(x), або u=cos(x), або u=tg(x). Знайти максимальне з трьох чисел: max(u, y, z) або max(|u|, у|, |z|).

Створити форму типу, яка вказана на рис. 1  і розробити відповідну програму.

Створення форми

Створіть форму, таку ж, як у другій лабораторній роботі, скорегувавши текст написів і положення вікон TEdit.

Робота з компонентом TCheckBox

Виберіть у меню на сторінці компонентів Standard піктограму і помістіть її в потрібне місце форми. За допомогою інспектора об'єктів змініть заголовок (Caption) на "Обчислення maxabs". У тексті програми з'явилася змінна CheckBox1 типу TCheckBox. Тепер у залежності від того, натиснута чи ні кнопка, змінна типу Boolean CheckBox1l.Checked буде приймати значення true або false.

Робота з компонентом TradioGroup

Виберіть у меню на сторінці компонентів Standard піктограму  і помістіть її в потрібне місце форми. На формі з'явиться окреслений лінією чистий прямокутник із заголовком RadioGroup1. Замініть заголовок (Caption) на U(x). Для того щоб розмістити на компоненті кнопки, необхідно властивість Columns установити рівним одиниці. Двічі клацніть по правій частині Items мишею, з'явиться рядковий редактор списку заголовків кнопок. Наберіть три рядки з іменами: у першої  cos(x), у другийsin(x), у третьої - tg(x), натисніть ОК.

Зверніть увагу на те, що в тексті програми з'явилася змінна RadioGroup1 типу TRadioGroup, Тепер при натисканні однієї з кнопок групи в змінній цілого типу RadioGroup1.ItemIndex буде знаходитися номер натиснутої клавіші, що використовується в приведеній програмі.

Створення оброблювачів подій FormCreate і ButtonClick

Процедури - оброблювачі подій FormCreate і ButtonClick створюються аналогічно тому, як і в другій лабораторній роботі. Текст процедур приведений нижче. Запустите програму і переконаєтеся в тому, що всі гілки алгоритму виконуються правильно. Форма приведена на рис. 1. Текст програми приведений нижче.

Рис. 1

unit unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls;

type

 TForm1 = class(TForm)

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Memo1: TMemo;

   Button1: TButton;

   CheckBox1: TCheckBox;

   RadioGroup1: TRadioGroup;

   Label5: TLabel;

   procedure Button1Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

 Edit1.Text := '0,1';   // Початкове значення Х

 Edit2.Text := '0,356';  // Початкове значення Y

 Edit3.Text := '0'; // Початкове значення Z

 Memo1.Clear;           //Очищення вікна редактори Memo1

// Виведення рядка в багаторядковий редактор Memol

Memo1.Lines.Add('Ла6.раб.N3. Ст.гр. 2ЭК Іванов А.А.');

end;

procedure TForm1.Button1Click(Sender: TObject);

 var  x, y, z, a, u, ma : Extended;

begin

 x := StrToFloat(Edit1.Text);

//Зчитується значення X

 Memo1.Lines.Add('Х = '+Edit1.Text);

// Виведення Х в вікно Memol

 Y := StrToFloat(Edit2.Text);

// Зчитується значення Y

 Memo1.Lines.Add('Y ='+Edit2.Text);

// Виведення Y у вікно Memol

 Z := StrToFloat(Edit3.Text);

// Зчитується значення Z

 Memo1.Lines.Add('Z = '+Edit3.Text);

 //Перевірка номера натиснутої кнопки і вибір відповідної їй функції

 case RadioGroup1.ItemIndex of

   0: u := cos(x);

   1: u := sin(x);

   2: u := sin(x)/cos(x);

 end;

 // Виведення U у вікно Memol

Memo1.Lines.Add('U = ' + FloatToStr(U, fffixed,8,2));

//Перевірка стану кнопки CheckBox1

 if CheckBox1.Checked then

 begin

   u := abs(u);

   y := abs(y);

   z := abs(z)

 end;

//Знаходження максимального з трьох чисел

 if u>y then ma := u else ma := y;

 if z>ma then ma := z;

 if Checkbox1.checked then

 Memo1.Lines.Add('maxabs=' + FloatToStrF(ma,fffixed,8,2))

 else

Memo1.Lines.Add('max=' + FloatToStrF(ma, fffixed,8,2));

end;

end.

Індивідуальні завдання.

Виберіть індивідуальне завдання з нижчеподаного списку. У якості f(x) використовувати sh(x), х2; е . Відредагуйте вид форми і текст програми відповідно до завдання.

  1.  a=   
  2.  

  1.  

  1.  

  1.       
  2.  7
  3.  7.
  4.  
  5.  
  6.  
  7.  
  8.      
  9.  
  10.  
  11.  r=max(min(f(x),y),z).
  12.  р=   
  13.  

  1.  

  1.  

  1.       
  2.  7
  3.  
  4.  
  5.  
  6.  
  7.  
  8.      
  9.  
  10.  
  11.  7
  12.  
  13.  
  14.  =   
  15.  

  1.  


 

А также другие работы, которые могут Вас заинтересовать

79069. Сервитуты. Понятие и виды. Хозяйственное значение и содержание сервитутов. Приобретение и утрата сервитутов. Защита сервитутного права 27.56 KB
  С ростом городов с увеличением скученности городских построек собственники городских земельных участков стали нуждаться в правовом средстве с помощью которого можно было бы предупредить полное затемнение одного участка постройкой на соседнем участке и т. Прочность удовлетворения потребности посредством такой правовой формы состояла в вещном характере сервитутного права: предметом сервитутного права являлся сам земельный участок а не действие определенного лица обязавшегося допускать пользование его земельным участком со стороны соседа....
79070. Содержание и виды договоров. Условия действительности договора. Недействительность договора (сделки). Договоры противозаконные и противоречащие добрым нравам. Пороки воли 24.85 KB
  Со временем договорами стали также считаться неформальные соглашения лиц. Такие соглашения именовались пактами и, в отличие от контрактов, первоначально не пользовались исковой защитой, так как заключались без соблюдения установленной процедуры.
79071. Стороны в обязательстве. Замена лиц в обязательстве. Обязательства с несколькими кредиторами или должниками 28.95 KB
  Обязательства с несколькими кредиторами или должниками. Оно рассматривалось как строго личная связь между кредитором и должником несмотря на имущественный характер содержания обязательства.С установлением обязательства связывались определенные юридические последствия исключительно для тех лиц которые его установили. Понимание обязательства как строго личного отношения между сторонами приводило также к тому что обязательство первоначально признавалось абсолютно непередаваемым ни на активной стороне переход права требования от кредитора к...
79072. Уголовное право Рима в древнейший период. Виды деликтов 19.71 KB
  Многие из таких частных деликтов известных Законам XII таблиц стали рассматриваться как преступления в последующем. преступления которые наказывались от имени римского народа а взыскания по ним шли не частным лицам а государству. К ним относились прежде всего преступления против республики. В зависимости от характера преступления смертная казнь принимала различные формы: отсечение головы утопление распятие сбрасывание с Тарпейской скалы и т.
79073. Формы гражданского процесса 28.39 KB
  Характерной особенностью римского гражданского процесса в течение республиканского периода и периода принципата было деление процесса на две стадии производства из которых первая называлась вторая judidum. Римская же первая стадия процесса приводила к окончанию дела только в случае признания иска ответчиком а такой вопрос как видно из открытых в 1933 году новых фрагментов Институций Гая прямо ставился истцом; требую чтобы ты сказал да или нет.Какими потребностями было вызвано деление римского процесса на две стадии и какие цели оно...
79074. Эмфитевзис и суперфиций. Сущность и причины образования этих институтов. Прекращение эмфитевзиса и суперфиция. Залог и его формы. Ипотека 27.26 KB
  Установление одного из этих двух прав на земельный участок дает право собственности на эту землю почти только номинальным; лишь после прекращения эмфитевзиса или суперфиция право собственности на данный участок получает реальное выражение. Как показывает термин emphyteusis от греческого emphyteuein насаждать этот институт перешел в римское право из Греции где наследственная аренда земли имела широкое применение эмфитевзис был издавна также в практике Египта и Карфагена.В содержание эмфитевзиса входит право пользоваться земельным...
79075. Безымянные контракты. Их характеристика. Типы безымянных контрактов. Виды пактов 32.41 KB
  сведены к четырем основным типам: 1 do ut des: я передаю тебе право собственности на вещь с тем чтобы ты передал мне право собственности на другую вещь; 2 do ut fcis: я передаю тебе право собственности на вещь с тем чтобы ты совершил известное действие оказал какието услуги и т.; 3 fcio ut des: я совершаю для тебя известное действие с тем чтобы ты передал мне право собственности на известную вещь; 4 fcio ut fcis: я совершаю для тебя известное действие с тем чтобы и ты совершил для меня какоето действие. При куплепродаже...
79077. Вербальные договоры. Стипуляция. Порядок заключения и содержание 25.9 KB
  Открытые в 1933 году новые фрагменты из Институций Гая доказывают что договор стипуляции был известен уже законам XII таблиц.Несмотря однако на все смягчения необходимых формальностей в классическом римском праве всетаки прочно охранялись некоторые черты стипуляции как формального контракта: присутствие договаривающхся сторон в одном месте устный вопрос кредитора и такой же устный ответ должника совпадающий по смыслу с вопросом. Обязательство возникшее из стипуляции было обязательством строгого права и потому подлежало строго...