Завдання: написати програму виведення на екран таблиці функцій, які оформити у видгляді процедури. Як функцію використовувати на вибір Tg(x), Ch(x) і sin
(x).
Створення модуля:Створюючи модуль, варто звернути увагу на те, що він не повинний мати своєї форми. Система DELPHI при початковому завантаженні автоматично створює шаблон програми, що має у своєму складі форму, файл проекту і т.д. Тому що модуль складається тільки з одного файлу, то необхідно перед його створенням знищити заготовок файлу проекту і форму. Для цього в меню File вибрати Close All, файл проекту не зберігати.
Для створення модуля в меню File вибрати File New, і потім у репозиторії – піктограму. У результаті буде створений файл із заголовком Unit Unit1. Ім'я модуля можна перемінити на інше, що відповідає внутрішньому змістові модуля, наприклад Unit Matfu;. Потім необхідно зберегти файл з ім'ям, що збігається з ім'ям заголовка модуля: Matfu.pas. Варто звернути увагу на те, що ім'я файлу повинне збігатися з ім'ям модуля, інакше DELPHI незможе підключити його до іншої програми.
Підключення модуля:Для того щоб підключити модуль до проекту, необхідно в меню Project вибрати опцію Add to Project і вибрати файл, що містить модуль. Після цього в розділі Uses додати ім'я модуля, що підключається - MatFu. Тепер у проекті можна використовувати функції, що утримуються в модулі.
Панель діалогу буде мати вигляд, показаний на мал.14.1.
Рис.14.1
Тексти модуля і програми, що його викликає, приведені нижче.
Текст модуля:
Unit Matfu;
Interface
Function Tg(x: extended) : extended;
//Функція для обчислення тангенса
Function Ch(x: extended) : extended;
//Функція для обчислення гіперболічного синуса
Function Sin2(x: extended) : extended;
//функція для обчислення квадрата синуса
Implementation
Function Tg;
begin
Result := sin(x)/cos(x);
end;
Function Ch;
begin
Result := (exp(x)-exp(-x))/2;
end;
Function Sin2;
begin
Result := sqr(sin(x));
end;
end.
Текст зухвалої програми:
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, MatFunc;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
RadioGroup1: TRadioGroup;
Procedure FormCreate(Sender: TObject);
Procedure Button1Click(Sender: TObject);
Procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
func = function(x:extended) : extended;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '0';
Edit2.Text := '2';
Edit3.Text := '0.2';
Memo1.Clear;
RadioGroup1.ItemIndex := 0;
end;
procedure Tabl(f: func; xn, xk, h: extended);
var
x, y : extended;
begin
x := xn;
Repeat
y := f(x);
Form1.Memo1.Lines.Add('x=' + FloatToStrF(x,fffixed, 8,2)+
' y=' + FloatToStrF(y,fffixed, 8,2));
x := x + h;
Until (x > xk);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
xn, xk, h : extended;
begin
xn := StrToFloat(Edit1.Text);
xk := StrToFloat(Edit2.Text);
h := StrToFloat(Edit3.Text);
Case RadioGroup1.ItemIndex of
0 : Tabl(tg, xn, xk, h);
1 : Tabl(ch, xn, xk, h);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Halt
end;
end.
Контрольні запитання:
1. Що називають підпрограмою?
2. Які види підпрограму мові Pascal Ви знаєте?
3. Які види параметрів Ви знаєте?
4. Які види змінних Ви знаєте?
5. Що називають моделем?
6.Яка структура модуля?
7.Як організувати модуль у Delphi?