Любая процедура начинается с заголовка, который является обязательным. Он состоит из зарезервированного слова PROCEDURE, за которым следует идентификатор имени процедуры, а далее в круглых скобках - список формальных параметров:
PROCEDURE <имя процедуры> (<список формальных параметров>);
За заголовком следуют такие же разделы, что и в основной программе.
При вызове процедуры необходимо указать ее имя и в круглых скобках список фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами. Все формальные параметры можно разбить на 4 категории:
· параметры - значения - эти параметры в основной программе подпрограммой не изменяются;
· параметры - переменные- эти параметры подпрограмма может изменить в основной программе;
· параметры - константы;
· параметры - процедуры и параметры - функции.
Параметры - значения передаются основной программой в подпрограмму через стек в виде их копий, и, следовательно, собственный параметр программы подпрограммой измениться не может. Параметр- значение указывается в заголовке подпрограммы под своим именем и - через двоеточие - типом.
При передаче параметров - переменных в подпрограмму фактически передаются их адреса в порядке, объявленном в заголовке подпрограммы. Это означает, что подпрограмма имеет доступ к этим параметрам и может их изменять.
Параметр- переменная указывается в заголовке подпрограммы аналогично параметру - значению, но только перед именем параметра записывается зарезервированное слово VAR. Действие слова VAR распространяется до ближайшей точки с запятой, т.е. в пределах одной группы.
Параметр-константа указывается в заголовке подпрограммы подобно параметру- значению, но перед именем параметра записывается зарезервированное слово CONST, действие которого распространяется до ближайшей точки с запятой. Параметр-константу нельзя передавать в другую подпрограмму в качестве фактического параметра.