В описании процедуры или функции задается список формальных
параметров. Каждый параметр, описанный в списке формальных пара-
метров, является локальным по отношению к описываемой процедуре
или функции и в модуле, связанным с данной процедурой или функци-
ей на него можно ссылаться по его идентификатору.
┌───┐ ┌──────────┐ ┌───┐
список формальных ───>│ ( ├─────>│ описание ├──┬──>│ ) ├──>
параметров └───┘ ^ │параметра │ │ └───┘
│ └──────────┘ │
│ ┌───┐ │
└──────┤ ; │<─────┘
└───┘
┌─────────────┐
описание ──┬────────────>│список иден- ├┬─────────────────────>
параметра │ ┌───┐ ^ │тификаторов ││ ^
├─>│var├────┤ └─────────────┘│ ┌───┐ ┌───────┐ │
│ └───┘ │ └>│ : ├─>│тип па-├─┘
│ ┌─────┐ │ └───┘ │раметра│
└─>│const├──┘ └───────┘
└─────┘
Существует три типа параметров: значение, переменная и нети-
пизированная переменная. Они характеризуются следующим:
1. Группа параметров без предшествующего ключевого слова
является списком параметров-значений.
2. Группа параметров, перед которыми следует ключевое слово
const и за которыми следует тип, является списком пара-
метров-констант.
3. Группа параметров, перед которыми стоит ключевое слово
var и за которыми следует тип, является списком нетипи-
зированных параметров-переменных.
4. Группа параметров, перед которыми стоит ключевое слово
var или const за которыми не следует тип, является спис-
ком нетипизированных параметров-переменных.
Параметры строкового типа и массивы могут быть открытыми па-
раметрами. Параметры-переменные, описанные с помощью идентифика-
тора OpenString или с использованием ключевого слова string в
состоянии {$P+}, являются открытыми строковыми параметрами. Зна-
чение, константа или параметр-переменная, описанные с помощью
синтаксиса array of T, являются открытым параметром-массивом.
Примечание: Подробнее об открытых параметрах рассказы-
вается ниже.