В загальному вигляді оголошення процедури виглядає так:
procedure Ім'я (var параметр1: тип1; ... var параметрК: тіпК); var // тут оголошення локальних змінних begin // тут інструкції процедури end;
де:
- procedure – зарезервоване слово мови Delphi, що означає, що далі йде оголошення процедури;
- ім’я – ім’я процедури, яке використовується для виклику процедури;
- параметр K – формальний параметр, змінна, яка використовується в інструкціях процедури. Слово var перед ім’ям параметра не є обов’язковим. Однак якщо воно стоїть, то це означає, що в інструкції виклику процедури фактичним параметром обов’язково повинна бути змінна.
Параметри процедури використовуються для передачі даних в процедуру, а також для повернення даних з процедури в викликала її програму.
Як приклад в лістингу 6.5 приведена процедура вирішення квадратного рівняння (яке в Загалом вигляді записується так: ах 2 +bx+c=0
У процедури шість параметрів: перші три призначені для передачі в процедуру вихідних даних – коефіцієнтів рівняння; параметри xi і х2 використовуються для повернення результату – коренів рівняння; параметр ok служить для передачі інформації про те, що рішення існує.
Лістинг 6.5. Процедура SgRoot
// вирішує квадратне рівняння procedure SqRoot (a, b, c: real; var xl, x2: real; var ok: boolean); { a, b, c - коефіцієнти рівняння x1, x2 - корені рівняння ok = True - рішення є ok = False - рішення немає} var d : Real; // дискриминант begin d: = Sqr (b) - 4 * a * c; if d < 0 then ok : = False // рівняння не має рішення else begin ok := True; x1 := (-b + Sqrt(d)) / (2*a) ; x2 := (b + Sqrt(d)) / (2*a); end; end;