TURBO PASCAL |
Новости
|
Глава 9. Процедуры и функцииПроцедуры и функции позволяют включать в основной программ- ный блок дополнительные блоки. Каждое описание процедуры или функции содержит заголовок, за которым следует программный блок. Процедура активизируется с помощью оператора процедуры. Функция активизируется при вычислении выражения, содержащего вызов функ- ции, и возвращаемое функцией значение подставляется в это выраже- ние. Примечание: Определение блока вы можете найти в Главе 8 "Блоки, локальность и область действия". В данной главе обсуждаются различные способы описания проце- дуры или функции и их параметры. Описания процедур ───────────────────────────────────────────────────────────────── Описание процедуры позволяет связать идентификатор с проце- дурным блоком. Процедуру можно затем активизировать с помощью оператора процедуры. ┌─────────┐ ┌───┐ ┌────────────┐ ┌───┐ описание ───>│заголовок├──>│ ; ├──>│ тело ├──>│ ; ├──> процедуры │процедуры│ └───┘ │подпрограммы│ └───┘ └─────────┘ └────────────┘ ┌─────────┐ ┌─────────────┐ заголовок ──>│procedure├─┬>│идентификатор├──┐ процедуры └─────────┘ │ └─────────────┘ ^├──────────────────> │ ┌─────────────┐ ││ ┌──────────┐ ^ │ │ уточненный │ ││ │ список │ │ └>│идентификатор├─┘└─>│формальных├─┘ │ метода │ │параметров│ └─────────────┘ └──────────┘ ┌──────┐ блок ───┬──────────────────────────────┬──>│модуль├────────> подпрограммы│ ┌─────────┐ ┌───┐ ^ │ └──────┘ ^ ├──>│ near ├─────>│ ; ├───┘ │ ┌───────┐ │ │ └─────────┘ ^ └───┘ │──>│forward├───┤ │ ┌─────────┐ │ │ └───────┘ │ ├──>│ far ├──┤ │ ┌─────────┐ │ │ └─────────┘ │ │──>│директива├─┤ │ ┌─────────┐ │ │ │ external│ │ ├──>│ export ├──┤ │ └─────────┘ │ │ └─────────┘ │ │ ┌────────┐ │ │ ┌─────────┐ │ └──>│блок asm├──┤ ├──>│interrupt├──┘ └────────┘ │ │ └─────────┘ ┌─────────┐ │ └─────────────────────────────────>│директива├─┘ │ inline │ └─────────┘ Заголовки процедур именуют идентификаторы процедур и задают формальные параметры (если они имеются). Примечание: Синтаксис списка формальных параметров по- казан далее в этой главе в разделе "Параметры". Процедура активизируется с помощью оператора процедуры, в котором содержатся имя процедуры и необходимые параметры. Опера- торы, которые должны выполняться при запуске процедуры, содержат- ся в операторной части модуля процедуры. Если в содержащемся в процедуре операторе внутри модуля процедуры используется иденти- фикатор процедуры, то процедура будет выполняться рекурсивно (бу- дет при выполнении обращаться сама к себе). Приведем пример описания процедуры: 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; |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |