Процедура – это разновидность подпрограммы. Обычно подпрограмма реализуется как процедура в двух случаях: когда подпрограмма не возвращает в основную программу никаких данных. Например, вычерчивает график в диалоговом окне; когда подпрограмма возвращает в вызвавшую ее программу больше чем одно значение. Например, подпрограмма, которая решает квадратное уравнение, должна вернуть в вызвавшую ее программу два дробных числа – корни уравнения.
В общем виде объявление процедуры выглядит так:
procedure Имя (var параметр1: тип1; ... var параметр К: тип К);
var// здесь объявление локальных переменных
begin// здесь инструкции процедуры
end;
где: procedure – зарезервированное слово языка Delphi, обозначающее, что далее следуют инструкции, реализующие процедуру программиста; имя – имя процедуры, которое используется для вызова процедуры; параметр K – формальный параметр, переменная, которая используется в инструкциях процедуры. Слово var перед именем параметра не является обязательным.
В качестве примера приведена процедура решения квадратного уравнения. У процедуры шесть параметров: первые три предназначены для передачи в процедуру исходных данных – коэффициентов уравнения; параметры x1 и х2 используются для возврата результата – корней уравнения; параметр ok служит для возврата информации о том, что решение существует.
// решает квадратное уравнение
procedure TForm1.SqRoot(a,b,c : real; var x1,x2 : real; var ok : boolean);
Var
d : real; // дискриминант
Begin
d:= Sqr(b) - 4*a*c;
if d < 0 then ok := False // уравнение не имеет решения
if rez then mes := 'Корни:'+#13+'x1='+FloatToStr(k1)+#13+'x2='+ FloatToStr(k2)+#13 elsemes := 'Уравнение не имеет решения'; label_result.Caption := mes; end;
Инструкция вызова процедуры в общем виде выглядит так:
Имя(СписокПараметров);
где: Имя – имя вызываемой процедуры; Список Параметров – разделенные запятыми фактические параметры.