Функция состоит из заголовка, раздела описаний и выполняемого блока. Описания должны находиться после других операторов описаний основной (вызывающей) программы, перед ее выполняемым блоком. В отличие от основной программы, заголовок функции обязателен, и имеет вид:
FUNCTION <имя функции>(<список аргументов>):<тип результата>;
Список аргументов это, по существу, список входных параметров.
Раздел описаний функции строится как раздел описаний основной программы, с учетом того, что все описанные переменные существуют только во время выполнения функции в виде локальных переменных и никак не связаны с переменными вызывающей программы.
Следует иметь в виду, что если во внешней программе переменная описана, а в функции – нет, ее использование в теле функции означает работу с переменной внешней программы (так называемые глобальные переменные).
Выполняемый блок (который должен быть заключен в скобки Begin .. End) заканчивается символом ";", а не точкой.
В функции, в отличие от процедуры, в выполняемом блоке имени функции обязательно должно быть присвоено значение, которое и будет являться ее значением. Такое присваивание может встречаться несколько раз, конечным значением будет результат последнего присваивания. Внутри выражений тела функции, ее имя встречаться не должно, если это не специальная рекурсивная функция.
Обращение к функции выполняется только внутри выражения, входящего в состав оператора, аналогично обращению к стандартным (встроенным) функциям Турбо-Паскаля.