Процедура является алгоритмом, который получает параметры в точке вызова и обрабатывает их некоторым образом для получения желаемого конечного состояния. Изменения параметров внутри процедуры показываются в точке вызова только в том случае, если формальному параметру предшествует ключевое слово VAR.
Синтаксис: | ||
271 | procedure_decl = procedure_head algorithm_head { stmt } END_PROCEDURE ';' . | |
272 | procedure head = PROCEDURE procedure_id [ '(' [ VAR ] formal_parameter | |
{ ';' [ VAR ] formal_parameter } ')' ] ';' . | ||
218 | formal_parameter = parameter_id { ',' parameter_id } ':' parameter_type . | |
266 | parameter_type = generalized_types | named_types | simple_types . | |
173 | algorithm_head = { declaration } [ constant_decl ] [ local_decl ]. | |
199 | declaration = entity_decl | function_decl | procedure_decl | | |
subtype_constraint_decl | type_decl . |
Правило: процедуры могут модифицировать локальные переменные или параметры, объявленные во внешней области видимости, то есть если данная функция объявлена в заголовке (элемент algorithm_head в определении синтаксиса) оператора FUNCTION, PROCEDURE или RULE.