Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методическое пособие по Паскалю.doc
Скачиваний:
9
Добавлен:
25.04.2019
Размер:
398.34 Кб
Скачать

7 Подпрограммы

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

При вызове подпрограммы выполнение основной программы приостанавливается и управление передается в подпрограмму. По окончании работы подпрограммы управление предается оставшейся части программы.

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

Любая подпрограмма должна быть описана до того, как она будет вызвана в программе или в другой подпрограмме. Все переменные, которые использует подпрограмма, могут быть либо глобальными, т.е. объявленные в основной программе и доступные как программе, так и всем ее подпрограммам, либо локальные, объявленные внутри подпрограммы и доступные только ей самой.

Подпрограмма может непосредственно использовать любые глобальные переменные за исключением тех, которые имеют те же имена, что и ее локальные переменные.

7.1 Процедуры

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

PROCEDURE <имя процедуры> (<список формальных параметров>);

За заголовком следуют такие же разделы, что и в основной программе.

При вызове процедуры необходимо указать ее имя и в круглых скобках список фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами. Все формальные параметры можно разбить на 4 категории:

  • параметры - значения - эти параметры в основной программе подпрограммой не изменяются;

  • параметры - переменные- эти параметры подпрограмма может изменить в основной программе;

  • параметры - константы;

  • параметры - процедуры и параметры - функции.

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

При передаче параметров - переменных в подпрограмму фактически передаются их адреса в порядке, объявленном в заголовке подпрограммы. Это означает, что подпрограмма имеет доступ к этим параметрам и может их изменять.

Параметр- переменная указывается в заголовке подпрограммы аналогично параметру - значению, но только перед именем параметра записывается зарезервированное слово VAR. Действие слова VAR распространяется до ближайшей точки с запятой, т.е. в пределах одной группы.

Параметр-константа указывается в заголовке подпрограммы подобно параметру- значению, но перед именем параметра записывается зарезервированное слово CONST, действие которого распространяется до ближайшей точки с запятой. Параметр-константу нельзя передавать в другую подпрограмму в качестве фактического параметра.