Функции
Функция отличается от процедуры тем, что результат ее работы возвращается в основную программу в виде значения функции. Поэтому для функции необходимо указать тип результата, а в теле функции должен присутствовать оператор присваивания, в левой части которого записывается имя функции.
Общий вид описания функции
Обращение к функции
Поскольку результат выполнения функции возвращается в основную программу через имя функции, то обращение к функции можно записать, аналогично стандартным функциям, в виде операнда в выражении:
.При вычислении выражения операнд обращения к функции заменяется значением функции.
Связь формальных параметров с фактическими параметрами осуществляется по тем же правилам, что и в процедуре. Разница заключается лишь в том, что имени функции может быть присвоено только одно значение. Если в функции вычисляются несколько выходных переменных, то они могут возвращаться в основную программу через списки параметров.
Для функции, аналогично процедуре, справедливы понятия глобальных и локальных переменных.
Пример программы с функцией
Решить предыдущую задачу (см. параграф 8.2) с использованием функции.
Program Primer_2;
Var
a, Z: real;
Function ST (x: real; n: integer): real;
var
i: integer;
P: real;
begin
P := 1;
for i := 1 to n do P := P * x;
ST := P;
end;
Begin {начало основной программы}
writeln(‘Введите число а’);
read(a);
Z := (ST(a, 5) + ST(1/a, 5)) / (2 * ST(a, 7));
writeln(‘Z=’, Z:6:2);
End.
В данной программе обращение к функции осуществляется с помощью трех операндов, записанных в выражении для вычисления Z.