Функции
Функции — это подпрограммы,
которые могут возвращать под своим именем результирующее значение. Типичным
примером функции может быть функция Sin (х)
. Запись:
A:=Sin(x);
позволяет вызвать функцию
вычисления синуса числа х
и вернуть результат под именем функции,
а затем присвоить его переменной А
.
Описание функции состоит
из двух частей: заголовка и блока. Заголовок функции имеет следующий
вид:
Function имя функции
(параметры): тип результата;
Имя функции однозначно
идентифицирует данную функцию и используется для ее вызова из основной программы.
Параметры — это
необязательная часть функции, содержащая список переменных, которые передаются
в функцию из основной программы.
Тип результата — показывает,
какой тип будет иметь результат выполнения функции. Тип результата может быть
любым, за исключением файлового.
Блок функции — это
программный блок, состоящий, как минимум, из одного оператора присваивания:
Имя функции := результат
выполнения функции;
или
Result := результат
выполнения функции;
Данная операция присваивания
(как первая, так и вторая) присваивает результирующее значение, которое вернет
функция при возврате в основную программу. Например:
function WF: Integer;begin
WF := 17; end;
и
function WF: Integer; begin
Result := 17; end;
Вызов обеих функций приведет
к одному и тому же результату. Данная функция всегда будет возвращать значение
17.
Вызов функции осуществляется
по ее имени и списку аргументов, заключенных в круглые скобки после имени функции.
Все аргументы должны быть совместимы по типу с параметрами, указанными в заголовке
функции.
В качестве примера рассмотрим
описание функции нахождения максимального значения среди элементов одномерного
массива (листинг 4.1). В качестве параметров в функцию будем передавать имя
массива и количество его элементов.
Листинг 4.1. Описание
функции Mах
function Max(A: array of Real; N: Integer): Real; var
X: Real;
I: Integer; begin
X := A[0]; for I := 1 to N - 1 do
if X < A[I] then X : = A[ I ];
Max := X; end;
Вызов данной функции может
выглядеть так:
М : = Мах(В, 12)
;
При этом переменная м должна
иметь тип Real,
массив в — тоже Real,
a вторым параметром
должно быть целое число (в нашем примере 12). Таким образом, вызов данной функции
при этих параметрах поместит в переменную м самое большое значение из всех,
хранящихся в элементах одномерного 12-элементного массива B
.