Тема: Підпрограми
Часто, працюючи над програмою, програміст помічає, що деяка послідовність інструкцій зустрічається в різних частинах програми кілька разів.
Наприклад:
1) Обчислюється однаковий вираз декілька разів.
2) Знаходиться сума чисел.
3) Використовується однакова формула декілька разів
4) D=sqrt(sqr(x2-x1))+sqr(y2-y1))
Можна уникнути дублювання коду в програмі. Для цього треба оформити інструкції, які зустрічаються в програмі кілька разів, як підпрограму, і замінити інструкції, оформлені у вигляді підпрограми, інструкцією виклику підпрограми.
Переваги використовування підпрограм очевидні. По-перше, в програмі немає дублювання коду, що скорочує трудомісткість створення програми, робить більш зручним процес відладки і внесення змін.
По-друге, значно підвищується надійність програми.Слід звернути увагу, що підпрограми використовують не тільки тоді, коли потрібно уникнути дублювання коду. Зручно велику задачу розділити на декілька підзадач і оформити кожну задачу як підпрограму. В цьому випадку значно покращується "читабельність" програми і, як наслідок, істотно полегшується процес відладки.
Підпрограма — це невелика програма, яка розв'язує частину загальної задачі.
В мові Delphi є два види підпрограм — процедура і функція.
Функція користувача.
Оголошення функції в загальному вигляді виглядає так:
function Ім'я (параметр1 : тип1 ..., параметрК : типК) : Тип;
var
// тут оголошення локальних змінних
begin
// тут інструкції функції
Ім'я := Вираз;
end;
де: function — службове слово мови Delphi, що позначає, що далі слідують інструкції, що реалізовують функцію програміста;
ім'я — ім'я функції. Використовується для переходу з програми до інструкцій функції;
параметр — це змінна, значення якої використовується для обчислення значення функції. Відмінність параметра від звичайної змінної полягає в тому, що він оголошується не в розділі оголошення змінних, який починається словом var, а в заголовку функції. Конкретне значення параметр набуває під час роботи програми в результаті виклику функції з основної програми;
тип — тип значення, яке функція повертає, що викликала її програма.
Задача1.
Дано вершини трикутника ABC.
А(x1;y1), B(x2;y2), C(x3;y3).
Потрібно обчислити периметр трикутника за формулою:
P=AB+BC+AC.
Код програми
function dov(a1,b1,a2,b2:real):real;
begin
dov:=sqrt(sqr(a2-a1)+sqr(b2-b1));
end;
Це функція для обчислення довжини відрізка, якщо відомо координати двох точок.
(a1;b1), (a2;b2) – координати точок(формальні параметри)
dov – результат функції
Код для Функції потрібно написати після слова implementation.
Код процедури Периметр:
procedure TForm1.Button1Click(Sender: TObject);
var x1,y1,x2,y2,x3,y3:real;
AB,BC,AC,P:real;
begin
x1:=StrToFloat(Edit1.Text);
y1:=StrToFloat(Edit2.Text);
x2:=StrToFloat(Edit3.Text);
y2:=StrToFloat(Edit4.Text);
x3:=StrToFloat(Edit5.Text);
y3:=StrToFloat(Edit6.Text);
AB:=dov(x1,y1,x2,y2);
BC:=dov(x3,y3,x2,y2);
AC:=dov(x1,y1,x3,y3);
P:=AB+BC+AC;
Edit7.Text:=FloatToStr(p);
end;
Для того, щоб звернутись до функції, потрібно вказати ім’я функції та фактичні параметри. І їх потрібно так записати, щоб вони йшли в потрібній послідовності.
Завдання2. ( для самостійного виконання)
Дано чотири числа a,b,c,d. Визначити більше із тих чисел. Використати функцію DVA(x,y) , яка визначає більше з двох.