Подпрограмма - функция
Подпрограммы - функции описываются вслед за разделом описания глобальных переменных и располагаются перед группой операторов основной программы. Функция состоит из заголовка, описания локальных переменных и тела (группы операторов). Общий вид подпрограммы - функции таков:
Function имя (а1;...;аn): тип результата;
|
|
End;,
где а1;...;an - список формальных параметров с указанием типа.
Функция передает в вызывающую программу единственное значение (результат) через свое имя. Тип передаваемого значения результата определяется в заголовке функции. В тексте подпрограммы - функции имени функции обязательно должно быть присвоено рассчитанное значение результата, т.е. имя функции должно хотя бы один раз присутствовать в левой части оператора присваивания.
Список формальных параметров и раздел описания локальных меток и переменных могут отсутствовать. В этом случае в тексте подпрограммы -функции используются глобальные параметры, описанные в основной программе. При наличии формальных параметров и локальных переменных их тип должен быть определен.
Пример А. Оформить в виде подпрограммы - функции алгоритм возведения в целочисленную степень у=хn.
Function rez1 (n:integer; x:real) : real;
var i:integer;
begin
rez1:=1;
for i:=1 to n do
rez1:=rez1*x;
end;
Пример Б. Оформить в виде подпрограммы - функции алгоритм возведения вещественного числа в вещественную степень y=ax.
Function rez2(x:real; a:real) : real;
begin
Rez2:=exp(x*ln(a));
end;
В примере Б подстепенное выражение не может принимать отрицательное значение или быть равным нулю. Впримере А может быть и отрицательным.
Переменные n, x, i примера A определены только в теле подпрограммы -функции. Вне тела функции они не определены, т.е. не существуют. Аналогичными переменными являются параметры а, х впримереБ.
Обращение к подпрограмме-функции осуществляется по имени функции с указанием в скобках вместо формальных параметров фактических. Причем имена формальных и фактических параметров могут и не совпадать, но их последовательность, количество и тип должны обязательно соответствовать друг другу. Так, обращение к функции rez2 примера Б может быть таким:
у:=а*rez2(n,х);,
что соответствует решению задачи у=а*хn. Здесь переменная n обязательно должна быть описана как переменная вещественного типа.
В примере Б переменные х и а являются формальными параметрами - переменные, формально присутствующие в подпрограмме и определяющие тип и место подстановки фактических значений, передаваемых из вызывающей программы. Конкретные (фактические) значения передают фактические параметры при обращении в вызывающей программе. Так, при рассмотренном выше обращении к функции rez2 фактическими параметрами являются переменные n и x.
Описание функции служит для определения той части программы, которая выполняет определенные вычисления и передает полученный результат. Функция выполняется сразу, как только имя функции встречается как часть предложения программы.
Дата добавления: 2015-08-08; просмотров: 620;