7. Процедуры и функции в Pascal

7. Процедуры и функции в Pascal

Процедуры в Pascal

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

Procedure <имя> [(<список формальных параметров>)];

Для каждого формального параметра должен быть определен его тип. Группы параметров в описании процедуры разделяются точкой с запятой.

По структуре процедура почти полностью аналогична программе. Однако в блоке процедуре отсутствует раздел подключения модулей. Блок состоит из двух частей: описательной и исполнительной. В описательной части содержится описание элементов процедуры. А в исполнительной части указываются действия с доступными процедуре элементами программы (например, глобальные переменные и константы), позволяющие получить требуемый результат. Раздел инструкций процедуры отличается от раздела инструкций программы только тем, что после ключевого слова End, завершающего этот раздел, ставится точка с запятой, а не точка.

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

Иногда требуется, чтобы процедура вызывала сама себя. Такой способ вызова называется рекурсией. Рекурсия полезна в случаях, когда основную задачу можно разбить на подзадачи, каждая из которых реализуется по алгоритму, совпадающему с основным.

Функции в Pascal

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

Function <имя> [(<список формальных параметров>)]: <тип возвращаемого результата>;

В реализации Turbo Pascal 7.0 фирмы Borland возвращаемое функцией значение не может иметь составной тип. А язык Object Pascal, используемый в интегрированных средах разработки Borland Delphi, допускает любой тип возвращаемого результата, кроме файлового типа.

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

Функция активизируется при вызове функции. При вызове функции указывается идентификатор функции и какие-либо параметры, необходимые для вычисления функции. Вызов функции может включаться в выражения в качестве операнда. Когда выражение вычисляется, функция выполняется и значением операнда становится значение, возвращаемое функцией.

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

Если идентификатор функции используется при вызове функции внутри модуля – функции, то функция выполняется рекурсивно.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Процедуры и функции 

Из книги автора

Процедуры и функции  VBScript поддерживаются два вида подпрограмм: встроенные функции и функции или процедуры


Функции и процедуры пользователя

Из книги автора

Функции и процедуры пользователя Для определения процедуры, т.е. подпрограммы, которая не возвращает никакого значения, в VBScript используется конструкция Sub…End Sub. После названия процедуры в круглых скобках указывается список ее параметров, например:Sub MyProcedure(Param1, Param2) Dim


3. Процедуры и функции (подпрограммы)

Из книги автора

3. Процедуры и функции (подпрограммы) Подпрограммы позволяют разбить одну сложную программу на несколько более простых и решать эти отдельные задачи самостоятельно, возможно даже, что делать это будут разные программисты и в разное время. Готовую подпрограмму,


2. Стандартные процедуры и функции

Из книги автора

2. Стандартные процедуры и функции Арифметические функции1. Function Abs(X);Возвращает абсолютное значение параметра.X – выражение вещественного или целочисленного типа.2. Function ArcTan(X: Extended): Extended;Возвращает арктангенс аргумента.X – выражение вещественного или целочисленного


ЛЕКЦИЯ № 3. Процедуры и функции

Из книги автора

ЛЕКЦИЯ № 3. Процедуры и функции 1. Понятие вспомогательного алгоритма Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.Подпрограмма – это некоторый вспомогательный алгоритм,


2. Процедуры в Pascal

Из книги автора

2. Процедуры в Pascal Каждое описание процедуры содержит заголовок, за которым следует программный блок. Общий вид заголовка процедуры следующий: Procedure <имя> [(<список формальных параметров>)]; Процедура активизируется с помощью оператора процедуры, в котором


3. Функции в Pascal

Из книги автора

3. Функции в Pascal Описание функции определяет часть программы, в которой вычисляется и возвращается значение. Общий вид заголовка функции следующий: Function <имя > [(<список формальных параметров>)]: <тип возвращаемого результата >; Функция активизируется при ее


Процедуры и функции

Из книги автора

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


Глава 5. Сохраненные процедуры и функции

Из книги автора

Глава 5. Сохраненные процедуры и функции Сохраненные подпрограммы (процедуры и функции) обеспечиваются в MySQL 5.0. Сохраненная процедура представляет собой набор инструкций SQL, которые могут быть сохранены на сервере. Если это было выполнено, клиентура не должна хранить


4. Стандартные процедуры и функции

Из книги автора

4. Стандартные процедуры и функции Арифметические функции1. Function Abs(X); возвращает абсолютное значение параметра.2. Function ArcTan(X: Extended): Extended; возвращает арктангенс аргумента.3. Function Exp(X: Real): Real; возвращает экспоненту.4. Function Frac(X: Real): Real; возвращает дробную часть аргумента.5. Function


11. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа

Из книги автора

11. Строковый тип в Pascal. Процедуры и функции для переменных строкового типа Последовательность символов определенной длины называется строкой. Переменные строкового типа определяются путем указания имени переменной, зарезервированного слова string, и возможно, но не