Процедуры в языке программирования паскаль
Часто некоторую последовательность действий требуется повторить в нескольких местах программы. Для удобства программирования, обеспечения большей компактности программы и повышения ее наглядности язык программирования Паскаль позволяет выделить эту последовательность действий из основного текста программы (из раздела операторов), присвоить ей некоторое имя и записать ее только один раз. Присвоенное имя используется в основном тексте программы для вызова этой последовательности действий. Такая именованная последовательность операторов называется процедурой. Если процедура дает одно результирующее значение и, следовательно, может использоваться в выражениях, то такая процедура называется функцией (процедурой-функцией). Остальные процедуры называются процедурами-операторами, или просто процедурами.
Описания процедур и функций располагаются в тексте программы между разделами переменных и операторов. Описание процедур состоит из двух частей: заголовка процедуры и тела процедуры. Телом процедуры является блок. То есть, тело процедуры имеет точно такую же структуру, что и программа: в нем могут присутствовать все разделы. Заголовок процедуры начинается со служебного слова PROCEDURE, за которым следует имя этой процедуры и за ним в круглых скобках список формальных параметров, которые могут и отсутствовать. Заголовок процедуры отделяется от ее тела точкой с запятой.
|
|
В секции формальных параметров перечисляются имена формальных параметров с указанием их типа. Все формальные параметры, а также метки, константы, типы, переменные, процедуры и функции, описанные в теле процедуры, локальны по отношению к описанию процедуры. Они не существуют вне описания процедуры. Их значения становятся неопределенными при выходе из описания процедуры. Имена формальных параметров, перечисленных в заголовке процедуры, определены в ее теле и не требуют дополнительного описания. Если в теле процедуры встречаются некоторые имена, не описанные в теле процедуры и не являющиеся ее формальными параметрами, то они считаются глобальными по отношению к данному описанию процедуры.
Для обращения к описанию процедуры используется оператор процедуры. Он состоит из имени процедуры и списка фактических параметров. Фактические параметры отделяются друг от друга запятыми, а весь список заключается в круглые скобки. Между формальными и фактическими параметрами устанавливается взаимооднозначное соответствие путем их пересчета слева направо. Число фактических параметров должно равняться числу формальных параметров. Типы фактических параметров должны соответствовать типам формальных параметров.
|
|
Описание процедуры задает формальную схему обработки, а оператор процедуры осуществляет настройку этой формальной схемы на конкретную обработку фактических данных. Выполнение оператора процедуры состоит в следующем: все формальные параметры заменяются соответствующими фактическими, после этого создается экземпляр блока процедуры, который и выполняется.
Пример 1.1.
Пусть например задано следующее описание процедуры (эта процедура подает несколько раз звуковой сигнал BEEP):
PROCEDURE BEEP(N:INTEGER);
VAR I:INTEGER;
BEGIN
FOR I:=1 TO N DO WRITE(CHR(7))
END;
Тогда для вызова этой процедуры в разделе операторов можно применять ее оператор в следующих видах:
BEEP(10);
BEEP(K);
BEEP(I+10);
где I, K - целые числа.