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-программ