Схема обмена информацией с использованием передачи параметра по адресу приведена на рисунке 2.7. В этом случае формальный параметр a (описание параметра начинается со слова var ) обрабатывается в подпрограмме как переменная, адрес которой есть адрес соответствующего фактического параметра x.
Рисунок 2.7 – Передача параметра по адресу
В операторе вызова фактическим параметром может быть только переменная.
Любое изменение формального параметра a есть изменение соответствующего ему фактического параметра x.
После вызова подпрограммы P (рисунок 2.7) значение x равно 1.
Функции
Синтаксис спецификации функции:
function <имя>(<список формальных параметров>): <тип результата>;
Для возвращения результата функция должна содержать хотя бы один оператор присваивания следующего вида:
<имя подпрограммы>:= <результат>;
Или
result:= <результат>;{ результат - значение, вычисленное в подпрограмме}
Вызов функции включается в оператор языка Object Pascal.
В качестве примера рассмотрим описание и использование функции power, которая возводит переменную base в степень exponent – baseexponent.
|
|
function power(base, exponent: real): real;
Begin
power:= exp(exponent * ln(base)); {exp, ln – встроенные функции Pascal: }
{ exp (x) – ex }
{ ln (x) – натуральный логарифм x }
end;
Пример вызова функции P(x):
writeln (power(3, 5)); { результат: 243 – 35 }