Функции имеют аналогичную структуру с процедурами, но различаются назначением и способом применения. Функция определяет алгоритм вычисления нового значения некоторого простого или ссылочного типа переменной. Описание функции отличается от описания процедуры двумя особенностями.
Первая особенность заключается в том, что заголовок функции должен начинаться зарезервированным словомfunction, а заканчиваться названием того типа данных, которому принадлежит значение функции:
function имя_функции (<сп. ф. п.> : их тип [;<сп. ф. п.> : их тип]): тип функции;
Здесьfunction – зарезервированное слово, объявляющее в разделе описаний о том, что следующая за ним переменная является функцией. Имя функции должно удовлетворять требованиям языка Паскаль. Обозначение <сп. ф. п.> – список формальных параметров, который может отсутствовать. Требования к списку формальных параметров в подпрограмме-функции точно такие же, как для подпрограммы-процедуры.
Тип функции определяет тип результата, то есть тип возвращаемого значения.
Вторая особенность функции состоит в том, что в разделе операторов подпрограммы-функции обязательно должен быть хотя бы один оператор, содержащий слева от оператора присваивания имя функции:
имя_функции := ...... ;
Таких операторов может быть несколько, но при каждом конкретном обращении к функции значение должен получить только один из них. Он и определит значение функции.