logo
Методичка_Delphi_Ч1

Описание процедуры

Заголовок процедуры выглядит следующим образом:

Procedure <имя процедуры> (<список формальных параметров>);

Имя процедуры должно удовлетворять общим требованиям языка к написанию имен.

В списке формальных параметров перечисляются имена параметров, передаваемых в процедуру с указанием их типов. Список параметров не является обязательным.

Пример заголовка процедуры:

Procedure myProc (a, b : Real; var s : String);

В приведенном выше примере процедуре передаются значения двух вещественных переменных «а» и «b», и адрес строки символов «s». Об этом свидетельствует префикс var перед именем строки. Передача адреса переменной в процедуру вместо ее значения приводит к тому, что если значение параметра s изменится в результате работы процедуры, то это изменение будет сохранено после завершения работы процедуры.

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

Раздел операторов процедуры содержит инструкции, которые будут выполняться при обращении к процедуре.

Ниже, в качестве примера, дано описание процедуры, заголовок которой был приведен выше.

Procedure myProc (a, b : Real; var s : String);

var z:real;

begin

z:=a+b;

s:=floatToStr(z);

end;

В качестве параметров в эту процедуру передается два вещественных числа и адрес некоторой строки.

В разделе описаний процедуры описана внутренняя переменная z, которая за пределами процедуры недоступна.

Инструкции, записанные в теле процедуры, обеспечивают сложение чисел, переданных в качестве параметров. Полученный результат запоминается в переменной z. Затем сумма преобразуется в строку символов.

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