6.9. Процедуры и функции
В этом разделе будут рассмотрены вопросы, связанные с написанием и употреблением подпрограмм, представленных в виде процедур или функций.
Определить простейшую процедуру довольно просто: практически любой составной оператор, вынесенный из основного блока программы и объявленный предложением
PROCEDURE ИмяПроцедуры;
становится процедурой, и вместо этого составного оператора в основном блоке может подставляться одно лишь ИмяПроцедуры.
Согласно более общему определению процедура может иметь параметры, метки перехода внутри себя и свои, локальные, переменные (рис. 6.5). Обязательными элементами процедур и функций тоже является заголовок и тело, т.е. тот же составной оператор.
Синтаксис вызова процедуры прост. Ее выполнение активизируется указанием ее имени и списком переменных или значений, подставляемых на место параметров:
ИмяПроцедуры(Параметр1, Параметр2,);
- 107 -
PROCEDURE ИмяПроцедуры (ПарамЗнач1 : ТипЗнач1;
ПарамЗнач2 : ТипЗнач2;
VAR ПарамПерем1 : ТипПерем1;
VAR ПарамПерем2 : ТипПерем2; ... );
LABEL
Перечисление меток внутри тела процедуры
CONST
Описание локальных констант процедуры
TYPE
Описание локальных типов
VAR
Описание локальных переменных
Описание вложенных процедур и (или) функций
BEGIN
Тело процедуры
END;
Рис. 6.5
Общая структура функций совпадает с процедурами, за исключением заголовка. Он записывается как
FUNCTION ИмяФункции( Список параметров ) :
ИмяСкалярногоТипаЗначенияФункций;
Что и как может возвращать функция при ее вызове, мы рассмотрим чуть позже.
Нетрудно заметить, что структура подпрограмм копирует структуру программы в целом (не считая заголовка и завершающей точки с запятой вместо точки после END). Порядок следования разделов описаний подчиняется тем же правилам, по которым строится вся программа.