Процедуры и функции позволяют логически разделить программу на более мелкие и понятные фрагменты, а также выделить в отдельные подпрограммы часто выполняющиеся действия. Описание процедур и функций находится в описательной части основной программы.
Синтаксис
Общий вид процедур и функций:
<Заголовок>
<Описательная часть>
BEGIN
<Исполнительная часть>
END;
Заголовок процедуры:
PROCEDURE <Имя>[(Формальные параметры>)];
Заголовок функции:
FUNCTION <Имя>[(Формальные параметры>)]:
<Тип результата>;
В списке формальных параметров находятся описания имен и типов параметров процедуры или функции, разделенные точками с запятой.
Синтаксис списка формальных параметров
[{VAR | CONST}] <Список имен 1>:<Тип 1>;
[{VAR | CONST}] <Список имен 2>:<Тип 2>;
. . .
[{VAR | CONST}] <Список имен N-1>:<Тип N-1>;
[{VAR | CONST}] <Список имен N>:<Тип N>
Тип результата указывает тип значения, возвращаемого функцией.
Пример
PROCEDURE PrintNumber(n:Real);
FUNCTION Sub(CONST S:STRING;St,En:Integer):STRING;
В описательной части процедур и функций, как и в описательной части основной программы, находятся описания переменных, констант, типов, меток, процедур и функций.
Исполнительная часть содержит последовательность операторов, разделенных точками с запятой. В исполнительной части функций для указания возвращаемого функцией значения применяться специальный оператор присваивания.
Синтаксис специального оператора присваивания
<Имя функции> := <Выражение>
Пример
FUNCTION Mul(A,B:Real):Real;
BEGIN
Mul:=A*B;
END;
В Delphi для возврата функциями значений в любой функции определена специальная переменная Result, которая имеет тип результата, указанный в заголовке функции. Присваивание этой переменной значения аналогично ранее рассмотренному специальному оператору присваивания.
Пример
FUNCTION Mul(A,B:Real):Real;
BEGIN
Result:=A*B;
END;
Переменную Result можно использовать и в любых выражениях, как любую обычную переменную. Так как специальная переменная
Result неявно описана в любой функции, нельзя описывать формальный параметр функции с именем Result, а также переменные, константы и любые другие описания с именем Result в описательной части функции.