Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры — идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе. .
Описание процедур в Паскале имеет вид:
Procedure Имя процедуры (формальные параметры);
Раздел описаний
Begin
Раздел операторов
End;
Описания меток, констант, типов и т. д. действительны только в пределах данной процедуры. В теле процедуры можно использовать любые глобальные константы и переменные.
procedure <имя>(Формальные параметры);
const …;
type ...;
var …;
begin
<операторы>
end;
Процедура не может выполниться сама, ее необходимо вызвать по имени и указать фактические параметры того же типа, что и формальные. Количество и тип формальных параметров равны количеству и типу фактических параметров.
Формальные параметры вместе с круглыми скобками могут отсутствовать. Формальные параметры представляют собой список переменных с указанием их типа. Все типы, используемые в заголовках процедур и функций, кроме простых, должны быть описаны в подразделе Type вызывающей эти процедуры или функции программной единицы. Те параметры, которые изменяются в процедуре, называют выходными и перед ними в заголовке процедуры обязательно ставится слово Var. Параметры, имеющие файловый тип, должны быть обязательно описаны как Var - параметры и в процедурах и в функциях.
Вызов процедуры в использующих ее программных единицах (основной программе или подпрограммах) имеет следующий вид:
Имя процедуры (фактические параметры);
Фактические параметры могут отсутствовать вместе со скобками, в том случае, если нет формальных параметров в описании указанной процедуры.
Если параметры все же необходимы, то между фактическими и формальными параметрами должно быть установлено соответствие по их количеству, порядку следования и типу данных.
Имена фактических и формальных параметров могут быть как одинаковыми, так и различными.
Пусть в программе две процедуры Р1 и Р2 вызываются из основной программы. В свою очередь в процедуре Р1 используется процедура Р11 и она должна быть описана в разделе описаний вызывающей ее процедуры Р1.