Для возврата результата из функции перед завершением работы функции следует значение результата присвоить специальной переменной – имени функции. Тип выражения, определяющего значение функции, должен совпадать с типом функции, указанным в ее объявлении.
Например, функция NumbSquare, возводящая число в квадрат:
Var
a:integer;
Function NumbSquare(x:integer):integer;
Begin
NumbSquare:=x*x; {возвращаемое значение из функции}
end;
Begin
write(’Введите целое число:’);
readln(a);
writeln(’Квадрат равен:’, NumbSquare(a));
End.
Вместо специальной переменной с именем функции для возврата значения из функции может быть использована зарезервированная переменная Result. Использование переменной с именем функции или переменной Result равноценно и не требует никакого дополнительного объявления. В создаваемых функциях рекомендуется использовать переменную Result, так как такой подход не повлечет исправление кода функции в случае изменения ее имени.
В рассмотренном примере возведения в квадрат целого числа в таком случае тело функции будет следующее:
Result:=x*x; {возвращаемое значение из функции}
Пример функции возведения числа в степень
Рассмотрим пример создания своей функции возведения числа в степень. Для этого предлагается воспользоваться стандартными математическими функциями экспонентой и натуральным логарифмом .
Тогда положительное a число в степени n может быть представлено так:
.
По данному алгоритму создаваемая функция Powerс двумя параметрами a и n будет возводить число a в степень n.
Var
x,y,pow:real;
Function Power(a,n:real):real;
Begin
Result:=exp(n*ln(a));
end;
Begin
write(’Введите число a:’); readln(x);
write(’Введите показатель степени n:’); readln(y);
write(’a в степени n равно:’);
pow:=Power(x, y);
write(’a в степени n равно:’, pow);
End.
Для вызова функции Power ее имя указывается в операторе присваивания значения переменной pow, в которой и хранится значение возведенного в степень y числа x. Параметры x и y в момент обращения к функции Power - это фактические параметры. Они подставляются вместо формальных параметров a и n в заголовке функции, и затем над ними осуществляются нужные действия. Полученный результат присваивается специальной зарезервированной переменной с именем Result, которая в теле любой функции интерпретируется как значение, которое вернет функция после окончания своей работы.