Тема: Процедури користувача в Delphi.
У попередніх пунктах ми створювали і використовували процедури, які були пов’язані з певними подіями і були методами певних об’єктів.
Заготовки цих процедур середовище розробки створювало автоматично, а ми доповнювали ці заготовки рядком var (опису змінних) і командами.
При створенні програм можна включати до проекту процедури, не пов’язані з подіями. Такі процедури називаються процедурами користувача.
Процедура користувача – це відокремлена частина програми, яка має своє ім’я і яка може бути викликана для виконання в будь-якій іншій частині програми.
Процедури користувача бувають:
n без аргументів і без результатів;
n з аргументами і без результатів;
n без аргументів і з результатами;
n з аргументами і з результатами (використовують найчастіше).\
Аргументи процедури – це змінні, які отримують свої значення в команді виклику процедури перед початком виконання команд процедури.
Результати процедури – це змінні, які передають свої значення з процедури певним змінним в команді виклику процедури.
Загальний запис процедури
procedure <ім’я> (<опис аргументів>; var <опис результатів>);
var (<опис локальних змінних процедури>);
begin
<команди>
end;
Загальний вигляд команди виклику процедури з аргументами і результатами
<ім’я> (<списки виразів, значення яких передаються аргументам процедури >, <списки змінних, яким передають свої значення результати процедури >);
Оформимо процедуру обчислення більшого двох чисел:
procedure max (a, b: real; var c: real);
begin
if a>b then c:=a else c:=b;
end;
Щоб викликати на виконання цю процедуру для одержання значення більшого з двох чисел 35 і 77, потрібно записати команду max (35, 77, х).
Виконуватися ця команда буде так:
n Змінні a і b (аргументи процедури) одержують значення 35 і 77 відповідно.
n Виконуються команди процедури.
n Змінна с передає своє значення змінній х, вказаній у команді виклику процедури.
Отже, в результаті виконання вказаної команди виклику процедури змінна х одержить значення 77.
Змінні, які вказані в заголовку процедури, називаються формальними параметрами процедури.
Змінні, які вказуються в команді виклику процедури, нази-ваються фактичними параметрами процедури.
Проілюструємо зручність використання процедур користувача на прикладі задачі.
Задача 1. Визначити найбільше серед 5-ти дійсних чисел.
Оформимо процедуру визначення більшого з двох чисел:
procedure Max_N (x, y: Real; var m: Real);
begin
if x > y then m:=x else m:=y
end;
Фрагмент програми розв’язування задачі 1 в Delphi матиме вигляд:
a := StrToFloat(Edit1.Text);
b := StrToFloat(Edit2.Text);
c := StrToFloat(Edit3.Text);
d := StrToFloat(Edit4.Text);
e := StrToFloat(Edit5.Text);
Max_N(a,b,z);
Max_N(z,c,z);
Max_N(z,d,z);
Max_N(z,e,z);
Label1.Caption := FloatToStr(z);
Виконаємо фрагмент для
a = 4; b = -3; c = 6; d = 5 ; e = 8.
Max_N(a, b, z) Max_N(4,-3,z); (z = 4)
Max_N(z, c, z) Max_N(4,6,z); (z = 6)
Max_N(z, d, z) Max_N(6,5,z); (z = 6)
Max_N(z, e, z) Max_N(6,8,z); (z = 8)
Label1.Caption:=FloatToStr(z); Label1.Caption:=‘8’;
Д/З. Задача
Дано вершини трикутника ABC.
А(x1;y1), B(x2;y2), C(x3;y3).
Потрібно обчислити периметр трикутника за формулою:
P=AB+BC+AC