Функции

Функции — это подпрограммы, которые могут возвращать под своим именем результирующее значение. Типичным примером функции может быть функция 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.

Hosted by uCoz