<<
>>

Объявление процедур

Синтаксис объявления процедуры следующий: «¡Объявление процедуры > «¡Заголовок процедуры>; «¡Тело процедуры>; «¡Заголовок процедуры> :: = Procedure : := «¡Раздел локальных объявлений> «¡Составной оператор> В заголовке процедуры указывается имя процедуры и описывается список формальных параметров (если он присутствует).
За заголовком может следовать раздел локальных объявлений (меток, типов, констант, переменных, вложенных процедур и функций). Раздел локальных объявлений может отсутствовать в том случае, если процедура использует только глобальные объявления. Запуск процедуры на исполнение осуществляется с помощью оператора процедуры, в котором содержатся имя процедуры и фактические параметры. Последовательность операторов, реализующих алгоритм процедуры, записывается внутри составного оператора (блока) процедуры. Если в каком-либо операторе внутри блока процедуры используется идентификатор самой процедуры, то процедура будет выполняться рекурсивно, т.
е. при выполнении будет обращаться сама к себе. Приведем пример объявления процедуры: // Преобразование целого числа в строку // восьмеричного представления Procedure OctStringfNmb: Integer; Var S; string); // Заголовок процедуры со списком формальных параметров: II Nmb - исходное целое число; S - строка для записи II результата преобразования Var Р: Integer; // Объявление локальной переменной Р Begin Р := Abs(Nmb); S := ' Repeat S := S + chr(P mod 8); P := P div 8; Until P = 0; Xf Nmb < 0 Then S := + S; End; В дальнейшем для вызова процедуры из основной программы или подпрограммы необходимо записать оператор процедуры со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами процедуры. Например, в результате выполнения фрагмента программы: OctString(InpNmb,Resultstring); Resultstring := 'Число '+str(InpNmb)+ ' в восьмеричной с.с.
равно '+ResultString; в переменной Resultstring типа String формируется запись старого и нового представления целого числа InpNmb. Объявления функций Функция — это подпрограмма, вычисляющая и возвращающая некоторое значение. Оператор функции может быть исполь- юван в качестве операнда при построении выражения. Синтаксис объявления функции следующий: ::= ;; ::= Function : :Идентификатор типа> ::= «Составной оператор> Основное отличие заголовка функции от заголовка процедуры (помимо используемого для объявления служебного слова) в Том, что заголовок функции дополнительно содержит указание НВ тип возвращаемого функцией значения — тип результата. Оператор функции при ее вызове обычно стоит либо в правой части оператора присваивания, либо входит на правах операнда в выражение, либо указывается в качестве фактического Параметра при вызове другой подпрограммы. Вызов функции Содержит идентификатор функции и список фактических параметров, совпадающий по размеру и типам со списком формальных параметров. После выполнения тела функции возвращается Значение, тип которого совпадает с типом результата функции. Операторная часть тела функции содержит операторы, реализующие алгоритм получения результата объявленного типа, При этом в операторной части должен находиться по крайней Мере один оператор присваивания, в котором в левой части СТОИТ идентификатор функции. Результатом выполнения функции будет последнее значение, присваиваемое идентификатору функции. Если такого оператора присваивания нет или он не ■Ыполняется, то возвращаемое функцией значение не будет определено. Если идентификатор функции используется для вызова функции внутри операторной части тела функции, то функция выполняется рекурсивно. Приведем пример объявления функции: // Функция вычисления суммы квадратов первых // N чисел натурального ряда Function SumSqr(N: Integer): Integer; Var S, i: Integer; Begin S := 1; For i := 2 To N Do S := S+i*i; SumSqr := S; // Присваивание значения результату //функции End; Для вызова функции из основной программы или из другой подпрограммы (например, при вычислении значения выражения) необходимо в выражении указать оператор функции со списком фактических параметров: ЫпеЬеп := ЬодЮ (X)/SumSqr (I) ; Здесь ЬодЮ (X) — вызов стандартной функции вычисления десятичного логарифма фактического параметра х; БитБдг (I) — вызов функции вычисления суммы квадратов с фактическим параметром I.
<< | >>
Источник: О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. 2008

Еще по теме Объявление процедур:

  1. 3. Объявление гражданина умершим
  2. 9. Безвестное отсутствие. Объявление гражданина умершим
  3. Статья 1250. Объявление нотариусом секретного завещания
  4. Статья 1150. Право на объявление конкурса
  5. Статья 47. Правовые последствия объявления физического лица умершим
  6. Параграф 1. Публичное обещание вознаграждения без объявления конкурса
  7. 4. Последствия явки гражданина, объявленного умершим
  8. § 5. Признание гражданина безвестное отсутствующим и объявление умершим
  9. Объявление о «Полярной звезде»
  10. Статья 46. Объявление физического лица умершим
  11. § 7. Правоотношения из объявления публичного конкурса (п. 2543-2552)
  12. § 5. Признание гражданина безвестно отсутствующим и объявление умершим