FunctionDeclaration = FunctionHeading ";" begin return Expression end SimpleName.
FunctionHeading = procedure ProcedureName "(" [ FPSection { ";" FPSection } ] "):" TypeName.
FPSection = ident { "," ident } ":" TypeName.
Рис. 2.12. Простой вид описания функции
Например, по программе, вычисляющей площадь треугольника по формуле Герона,
module ПлошадьТреугольника1;
var A,B,C : real;
begin
read(A,B,C);
write('Площадь =' , Sqrt((A+B+C)/2
((A+B+C)/2 - A)
((A+B+C)/2 - B)
((A+B+C)/2 - C)))
end ПлошадьТреугольника1.
за счет использования функции P с пустым списком параметров для вычисления полупериметра треугольника можно получить более короткую программу
module ПлошадьТреугольника2;
var A,B,C : real;
procedure P(): real;
begin return (A+B+C)/2
end
P;
begin
read(A,B,C);
write('Площадь =' , Sqrt(P()(P()
- A)(P()
- B)
(P() - C)))
endПлошадьТреугольника2.
Список формальных параметров представляет аргументы описываемой функции. В нем для каждого аргумента функции указываются формальный параметр (идентификатор), представляющий данный аргумент в операторе задания значения функции и изображающий разные значения при разных вызовах, а также имя типа значения, которое представляется этим параметром. Эти значения задаются при каждом обращении к функции с помощью списка фактических параметров (выражений), длина которого должна совпадать с длиной списка формальных параметров. Между формальными и фактическими параметрами устанавливается простое позиционное соответствие: первый фактический параметр соответствует первому формальному, второй -- второму и т.д. Приведенная ниже программа осуществляет вычисление площади выпуклого четырехугольника, заданного длинами четырех сторон (переменные A, B, C и D) и диагонали (переменная E).
module ПлощадьЧетырехугольника;
var A,B,C,D,E : real;
function P(X, Y, Z : real) : real;
begin return
(X+Y+Z)/2 end P;
function S(X, Y, Z, W : real) : real;
begin return
Sqrt(W(W-X)(W-Y)(W-Z))
end
S;
begin
read(A,B,C,D,E);
write(' Площадь =', S(A,B,E,P(A,B,E))+S(C,D,E,P(C,D,E)))
end ПлощадьЧетырехугольника.
В ней функции и P служат для вычисления площадей треугольников по формуле Герона более эффективным способом, чем это описано в предыдущих двух программах.
Next:2.2.8
Упражнения Up:2.2
Выражения, операторы и функции
Previous:2.2.6
Общий вид Zonnon-программ