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