10.2. Функция
Подпрограмма-функция предназначена для вычисления какого-либо параметра. У этой подпрограммы два основных отличия от процедуры.
Первое отличие функции в ее заголовке. Он состоит из слова function, за которым следует имя функции, далее в круглых скобках - список формальных параметров (о формальных параметрах см. п. 10.3), затем через двоеточие записывается тип функции - тип возвращаемого параметра. Функция может возвращать параметры следующих типов: любого порядкового, любого вещественного, стандартного типа string, любого указателя, в том числе и типа PChar.
Второе отличие заключается в том, что в теле функции хотя бы раз имени функции должно быть присвоено значение.
Пример. Функция вычисления факториала числа N.
function Factorial(N: Byte): Longint;
var Fact: Longint;
i: Byte;
begin
Fact := N;
for i : = N-l downto 2 do
Fact : = Fact * i;
Factorial := Fact
end;
Если имя функции внутри ее описания используется не в левой части оператора присваивания, то это означает, что функция вызывает себя рекурсивно (см. п. 10.6).
Для вызова функции из основной программы или другой подпрограммы следует в выражении, где необходимо использовать значение функции, указать имя функции со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами функции, например:
Part:=Sqr(T)/Faktorial(i);
В этом операторе:
Sqr(T) - вызов стандартной функции возведения в квадрат с фактическим параметром Т;
Faktorial(i) - вызов функции, вычисляющей факториал с фактическим параметром i.
|