Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Глава 9. Процедуры и функции

Процедуры и функции позволяют включать в основной программ-

ный блок дополнительные блоки. Каждое описание процедуры или

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

Процедура активизируется с помощью оператора процедуры. Функция

активизируется при вычислении выражения, содержащего вызов функ-

ции, и возвращаемое функцией значение подставляется в это выраже-

ние.

Примечание: Определение блока вы можете найти в Главе

8 "Блоки, локальность и область действия".

В данной главе обсуждаются различные способы описания проце-

дуры или функции и их параметры.

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

-----------------------------------------------------------------

Описание процедуры позволяет связать идентификатор с проце-

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

оператора процедуры.

---------- ---- ------------- ----

описание --->¦заголовок+-->¦ ; +-->¦ тело +-->¦ ; +-->

процедуры ¦процедуры¦ L---- ¦подпрограммы¦ L----

L---------- L-------------

---------- --------------

заголовок -->¦procedure+-T>¦идентификатор+--

процедуры L---------- ¦ L-------------- ^+------------------>

¦ -------------- ¦¦ ----------- ^

¦ ¦ уточненный ¦ ¦¦ ¦ список ¦ ¦

L>¦идентификатор+--L->¦формальных+--

¦ метода ¦ ¦параметров¦

L-------------- L-----------

-------

блок ---T------------------------------T-->¦модуль+-------->

подпрограммы¦ ---------- ---- ^ ¦ L------- ^

+-->¦ near +----->¦ ; +---- ¦ -------- ¦

¦ L---------- ^ L---- ¦-->¦forward+---+

¦ ---------- ¦ ¦ L-------- ¦

+-->¦ far +--+ ¦ ---------- ¦

¦ L---------- ¦ ¦-->¦директива+-+

¦ ---------- ¦ ¦ ¦ external¦ ¦

+-->¦ export +--+ ¦ L---------- ¦

¦ L---------- ¦ ¦ --------- ¦

¦ ---------- ¦ L-->¦блок asm+--+

+-->¦interrupt+--- L--------- ¦

¦ L---------- ---------- ¦

L--------------------------------->¦директива+--

¦ inline ¦

L----------

Заголовки процедур именуют идентификаторы процедур и задают

формальные параметры (если они имеются).

Примечание: Синтаксис списка формальных параметров по-

казан далее в этой главе в разделе "Параметры".

Процедура активизируется с помощью оператора процедуры, в

котором содержатся имя процедуры и необходимые параметры. Опера-

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

ся в операторной части модуля процедуры. Если в содержащемся в

процедуре операторе внутри модуля процедуры используется иденти-

фикатор процедуры, то процедура будет выполняться рекурсивно (бу-

дет при выполнении обращаться сама к себе).

Приведем пример описания процедуры:

procedure NumString(N: integer; var S: string);

var

V: integer;

begin

V := Abs(N);

S := '';

repeat

S := Chr(N mod 10 + Ord('0')) + S;

N := N div 10;

until N = 0;

if N < 0 then S := '-' + S;

end;

Соседние файлы в предмете Программирование на Pascal