| 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. 
 
 |