Функции предназначены для того, чтобы вычислить только оно значение, поэтому ее первое отличие состоит в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет ее результатом).
Второе отличие заключаются в заголовке функции. Он состоит из слова function,за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции. Остальное как в процедуре.
Кроме того: в теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой – ее значение. Иначе, значение не будет определено.
Таким образом, общий вид будет следующим:
Function<имя> (список формальных параметров) :< тип результата>;
<описательная часть>
Begin
<тело процедуры>
<имя>:=<значения>;
end;
Пример:
Составить программу, подсчитывающую число сочетаний без повторения из N элементов по К элементов.
Число сочетаний без повторения считается по формуле:
Cnk=n! /k!(n-k)!
Обозначим:
n,k-переменные для хранения введенных чисел;
C- переменная для хранения результата.
Чтобы подсчитать количество сочетаний без повторения, необходимо вычислить n!, (n-k)!, k!.
factorial: = rez;{присвоение значения имени функции}
End;
Первая строчка в описании функции - это заголовок функции. Служебное слово Function(функция) указывает на то, что именем factorial названа функция. В скобках перечислен список формальных параметров функции, указаны их имена и задан их тип. Функция factorial имеет один параметр n (число, факториал которого мы будем находить), который является целым числом. Далее в заголовке указывается тип значения функции, ее результата. В данном примере результат функции factorial-целое число.
За заголовком функции следует описательная часть функции, которая, как и у программы, может состоять из раздела описаний переменных, констант, типов и т.д. В данном примере нам понадобится только раздел переменных. Опишем переменные i (переменная для управления циклом) и rez, (для накопления значения факториала).
Далее идет раздел операторов (тело функций), в котором подсчитывается значение факториала числа. Результат этого вычисления присваивается имени функции, таким образом она и получает свое значение.
В тексте программы описание функции всегда следует за описанием переменных и до начала основной части, как и описание процедур. После того как функция описана, ее можно использовать в программе.
Вся программа для нашей задачи может иметь следующий вид: