Иллюстрированный самоучитель по Delphi 7 для начинающих

Процедура. Объявление процедуры.

Процедура – это разновидность подпрограммы. Обычно подпрограмма реализуется как процедура в двух случаях:

  • когда подпрограмма не возвращает в основную программу никаких данных. Например, вычерчивает график в диалоговом окне;
  • когда подпрограмма возвращает в вызвавшую ее программу больше чем одно значение. Например, подпрограмма, которая решает квадратное уравнение, должна вернуть в вызвавшую ее программу два дробных числа – корни уравнения.

Объявление процедуры

В общем виде объявление процедуры выглядит так:

procedure Имя (var параметр1: тип1;… var параметрК: типК); var
// здесь объявление локальных переменных
begin
// здесь инструкции процедуры
end;

Где:

  • procedure – зарезервированное слово языка Delphi, обозначающее, что далее следует объявление процедуры;
  • имя – имя процедуры, которое используется для вызова процедуры;
  • параметр K – формальный параметр, переменная, которая используется в инструкциях процедуры. Слово var перед именем параметра не является обязательным. Однако если оно стоит, то это означает, что в инструкции вызова процедуры фактическим параметром обязательно должна быть переменная.

Параметры процедуры используются для передачи данных в процедуру, а также для возврата данных из процедуры в вызвавшую ее программу.

В качестве примера в листинге 6.5 приведена процедура решения квадратного уравнения (которое в общем виде записывается так: ах2 + bх+ с = 0). У процедуры шесть параметров: первые три предназначены для передачи в процедуру исходных данных – коэффициентов уравнения; параметры x1 и х2 используются для возврата результата – корней уравнения; параметр ok служит для передачи информации о том, что решение существует.

Листинг 6.5. Процедура SgRoot.

// решает квадратное уравнение
procedure SqRoot(a,b,c: real;
var x1,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;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.