logo
Курс лекций по информатике

Описание процедуры и обращение к ней

Описания процедур и функций располагаются в тексте программы между разделами переменных и операторов. Описание процедур состоит из двух частей: заголовка процедуры и тела процедуры. Телом процедуры является блок. То есть, тело процедуры имеет точно такую же структуру, что и программа: в нем могут присутствовать все разделы. Заголовок процедуры начинается со служебного слова PROCEDURE, за которым следует имя этой процедуры и за ним в круглых скобках список формальных параметров, которые могут и отсутствовать. Заголовок процедуры отделяется от ее тела точкой с запятой.

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

Для обращения к описанию процедуры используется оператор процедуры. Он состоит из имени процедуры и списка фактических параметров. Фактические параметры отделяются друг от друга запятыми, а весь список заключается в круглые скобки. Между формальными и фактическими параметрами устанавливается взаимооднозначное соответствие путем их пересчета слева направо. Число фактических параметров должно равняться числу формальных параметров. Типы фактических параметров должны соответствовать типам формальных параметров.

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

Пример 1.1.

Пусть например задано следующее описание процедуры (эта процедура подает несколько раз звуковой сигнал BEEP):

PROCEDURE BEEP(N:INTEGER);

VAR I:INTEGER;

BEGIN

FOR I:=1 TO N DO WRITE(CHR(7))

END;

Тогда для вызова этой процедуры в разделе операторов можно применять ее оператор в следующих видах:

BEEP(10);

BEEP(K);

BEEP(I+10);

где I, K - целые числа.