Функция – это подпрограмма, определяющая единственное значение. Отличия подпрограммы – функции от процедуры:
- Заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:
Function имя(описание формальных параметров): тип;
- Раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;
- Обращение к функции – не оператор, а выражение вида:
имя функции (список фактических параметров);
Функции (и процедуры) могут использовать свое имя в собственном описании, т.е. могут быть рекурсивными.
Пример: составим программу, которая для заданных четырех натуральных чисел a, b, c, d напечатает наибольшие общие делители первой и второй пар чисел и сравнит их по величине.
program four; var a, b, c, d m,n: integer: function nod(x, y: integer):integer; var h: integer; begin if y=0 then h: =x else if x<y then h:= nod(x,) else h:= nod(x mod y, y); nod: =h end; begin writeln(‘введите 4 натуральных числа’); read(a, b, c, d);writeln; m: =nod(a, b); n: =nod(c, d); writeln(‘НОД(‘,a,’ ,’,b,’)=,m); writeln(‘НОД(‘,c,’ ,’,d,’)=,n); if m>n then writeln(‘первый > второго’) else if m<n then writeln(‘первый < второго’) else writeln(‘НОД пар равны’) end.