Функции «FUNCTION»
Краткие теоретические сведения находятся в пункте «Модульное программирование»
Описание функции:
Function <имя> [(входные формальные параметры: тип);...)]:тип значения функции;
<Блок описания переменных функции>;
Begin
<Блок операторов>;
End;
Описываются функции до начала основной программы.
Несколько входных формальных параметров разных типов следует разделять точкой запятой, одинаковых типов – запятой. Данных параметров может и не быть. Выходное значение у функции только одно.
К функции можно обращаться из тела самой этой функции (вызвать саму себя). Данный вид планирования решения задачи или алгоритма программы называется рекурсией.
При решении задач с использованием функций необходимо определить ее назначение (тип значения), количество и тип входных формальных параметров.
Пример: Определить значение следующего выражения:

, где max – это значение, максимальное из двух аргументов.
program reshenie;
var x, a, b: real;
function max(fa, fb: real): real; //описание функции
begin //начало блока операторов
if fa>fb then max:=fa
else max:=fb
end;
begin //начало основной программы
write ('Введите a и b:');
readln (a,b);
x:=(max(5,a)+max(3+a,b))/max(a,b);
writeln ('Ответ:', x:8:2);
end.