Подпрограммы. Процедуры и функции
Относительно самостоятельные фрагменты программы, оформленные определенным образом и снабженные заголовком, называются подпрограммами. С помощью подпрограмм любая программа может быть разбита на ряд формально независимых друг от друга частей. Подпрограммы делятся на два вида: процедуры и функции. Результатом исполнения операторов, образующих тело функции, всегда является единственное значение, поэтому ее имя может быть использовано в выражениях наряду с переменными и константами. Если в программе используются процедуры или функции, то их описание должно предшествовать основному блоку программы. Описание состоит из заголовка и тела процедуры (функции), которое обычно следует за заголовком. Заголовок процедуры с параметрами описывается строкой 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 Все права принадлежат авторам размещенных материалов.
|