Функции

Заголовок функции состоит из слова Function, за которым указывается имя функции, затем в круглых скобках записывается список формальных параметров, далее ставится двоеточие и указывается тип результата функции.

В теле функции обязательно должен быть хотя бы один оператор присваивания, в левой части которого стоит имя функции, а в правой - ее значение. Иначе значение функции не будет определено.

Таким образом, общий вид описания функции следующий :

 

Function Имя[(список формальных параметров)]:Тип результата

описательная часть

Begin

тело функции, в которой обязательно должно быть

присваивание Имя_функции:=значение

End;

 

Пример 1Составить программу, подсчитывающую число сочетаний без повторения из n элементов по k. Число сочетания без повторения вычисляется по формуле

Обозначим через n и k переменные для хранения введенных чисел; С - переменную для хранения результата.

Воспользуемся функцией для вычисления факториала числа n. (n!=1*2*..*n)

 

programsochet;

varn,k : integer;

a1,a2,a3,c : lohgint;

Functionfactorial(n:integer):longint;

var i: integer;

rez : longint;

Begin

rez:=1;

for i:=1 to n do rez:=rez*i;

factorial:=rez;

end;

Begin

writeln(‘ ввод n и k :’); readln(n,k);

a1:=factorial(n); { вычисление n!}

a2:=factorial(k); { вычисление k!}

a3:=factorial(n-k); {вычисление (n-k)!}

c:=a1 div (a2*a3); { результат}

writeln(‘результат=’,c) ;

End.

Первая строка в описании функции - это ее заголовок. Служебное слово Function(функция) указывает на то, что именем factorial названа функция. В скобках записан список формальных параметров функции, состоящий из одной переменной целого типа. Далее в заголовке указан тип значения функции. В данном примере результат функции factorial - длинное целое число.

За заголовком функции следует описательная часть функции, которая, как у программы, может состоять из разделов описания переменных, констант, типов. В данном примере есть переменные i (счетчик цикла) rez (для накопления значения факториала).

Далее идет раздел операторов (тело функции).