Процедура пользователя представляет собой именованную группу операторов, реализующую определенную часть обшей задачи и вызываемую при необходимости для выполнения по имени из любой позиции раздела операторов. Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова Procedure, идентификатора (имени) процедуры и необязательного заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра.
Формат:
Procedure <имя>[(формальные параметры)];
Пример.
Procedure Sort (A: integer; В: real);
Procedure Kvadr (Alpha, Beta: integer; var Gamma: boolean);
Procedure SumVed; {алгоритм, реализованный процедурой, не требует формальных параметров}
Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе:
Procedure <имя> [(формальные параметры)];
<разделы описаний>
begin
<раздел операторов>
end;
Для обращения к процедуре используется оператор вызова процедуры. Он состоит из идентификатора (имени) процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в круглые скобки. Список параметров может отсутствовать, если процедуре не передается никаких значений.
Формат: <идентификатор процедуры> <(параметр, … т, параметр)>;
Пример.
Sort (А1,В1); {параметры – значения переменных}
Kvadr (14,25, True); {параметры – непосредственно значения}
Sunf/ed; {фактические параметры не указаны, так как в вызываемой процедуре нет формальных параметров}
Параметры обеспечивают механизм замены, который позволяет выполнять процедуру с различными начальными данными. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимно-однозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равны количеству и типу фактических параметров. Ниже приведена программа, реализующая с помощью процедуры без параметров очищение экрана, установку курсора в его центр и вывод слова 'СПРАВОЧНИК'.
Program DemoProcedure;
Procedure Ekran;
begin
ClrScr;
GoToXY(30,12);
Write(‘ СПРАВОЧНИК’)
end;
Begin
Ekran; {вызов процедуры Ekran}
End.
Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны как параметры-переменные с использованием слова Var.