В общем виде
объявление процедуры выглядит так:
procedure Имя (var параметр1: тип1; ... var параметрК: типК) ; var
// здесь объявление локальных переменных
begin
// здесь инструкции процедуры
end;
где:
- procedure —
зарезервированное слово языка Delphi, обозначающее, что далее следует объявление
процедуры;
- имя — имя процедуры,
которое используется для вызова процедуры;
- параметр K — формальный
параметр, переменная, которая используется в инструкциях процедуры. Слово var
перед именем параметра не является обязательным. Однако если оно стоит, то это
означает, что в инструкции вызова процедуры фактическим параметром обязательно
должна быть переменная.
Параметры
процедуры используются для передачи данных в процедуру, а также для возврата
данных из процедуры в вызвавшую ее программу.
В качестве
примера в листинге 6.5 приведена процедура решения квадратного уравнения
(которое в общем виде записывается так: ах2 + Ьх+ с = 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;