Здавалка
Главная | Обратная связь

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



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

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

Если в программе используются процедуры или функции, то их описа­ние должно предшествовать основному блоку программы.

Описание состоит из заголовка и тела процедуры (функции), которое обычно следует за за­головком.

Заголовок процедуры с параметрами описывается строкой

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

Список формальных параметров записывается в скобках и содержит пере­чень параметров с указанием их типов. Перед выходными параметрами, которые воз­вращают результат в основную программу, указывается ключевое слово VAR, например:

PROCEDURE SUMMA(A1,A2:REAL; B1,B2:INTEGER; VAR S1,S2:REAL); Допускаются также процедуры без параметров:

PROCEDURE <имя >;

Они предполагают использование в подпрограмме только глобальных пере­менных, определенных в разделе описаний основной программы.

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

Структура описания заголовка подпрограммы-функции имеет вид:

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

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

Пример

FUNCTION STEP(x, y : REAL) : REAL;

VAR a, b : real;

BEGIN

... ...

END;

После описания блока процедуры или функции следует оператор END, за которым ставится точка с запятой.

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

<имя функции> := <выражение>;

например: STEP := <выражение вещественного типа>.

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

Количество, тип и порядок перечисления фактических параметров должен обязательно соответствовать количеству, типу и порядку перечис­ления формальных параметров в описании подпрограммы.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.