Параметры процедур делятся на два типа:
1) параметры–значения;
2) параметры–переменные;
Параметр–значение получает значение от фактического параметра, используется в процедуре, значение фактическому параметру не передает. Параметр–переменная получает значение от фактического параметра, используется в процедуре, и позволяет изменять значение соответствующего фактического параметра.
Через параметр переменную можно передавать результат работы процедуры. При вызове процедура получает доступ к области памяти, в которой хранится значение фактического параметра, соответствующего параметру–переменной. Таким образом, обеспечивается возможность изменения этого фактического параметра. В заголовке параметру-переменной должно предшествовать слово Var. Описатель Var записывается столько раз, сколько разных типов параметров- переменных используется в процедуре. Параметр- переменная при вызове не может представляться выражением.
Замечание. Допускается создание вложенных структур: процедура в процедуре.
Функция в отличие от процедуры позволяет получить один результат. Формальные параметры функции – это аргументы функции.
Особенности функций:
1) Результат возвращается через имя функции;
2) В заголовке обязательно указывается тип результата;
3) Формальные параметры функции могут отсутствовать;
4) В теле функции должен быть хотя бы один оператор, который присваивает имени функции результат;
5) В отличие от процедуры имя функции может встречаться в выражениях в качестве операнда;
6) Формальны параметры функции могут быть только параметрами–значениями.
7) Аргументы функции могут быть любых типов;
8) Функция (и результат) имеет только скалярный тип (число- целое или вещественное, символ или булевская переменная).
9) Типы, количество и порядок следования фактических и формальных параметров должны совпадать;
10) В теле функции могут использоваться другие функции;