С использованием процедур

Довольно часто, уже на этапе разработки алгоритма программы, можно обнаружить, что некоторые одинаковые или очень похожие действия в программе должны выполняться несколько раз. Текст программы, реализующей такой алгоритм, будет содержать последовательность одинаковых операторов.

Избежать дублирования операторов можно, если оформить повторяющуюся последовательность как процедуру и в том месте программы, где надо выполнить эти инструкции, указать ее имя.

В Турбо Паскале процедурой называется часть программы, имеющая имя и предназначенная для решения определенной задачи (вместо термина «процедура», часто используют термин подпрограмма).

Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и заключенного в круглые скобки списка формаль­ных параметров с указанием типа каждого параметра.

В общем виде описание процедуры выглядит так:

procedure имя (формальные параметры);

Раздел описаний;

begin

Раздел операторов

end;

Имя процедуры должно быть уникальным и не должно встречаться в разделе операторов данной процедуры.

Нетрудно заметить, что структура процедуры копирует структуру программы в целом, т. е. состоит из заголовка, раздела описаний и раз­дела операторов. Различия лишь в заголовках и в том, что в конце про­цедуры ставится точка с запятой вместо точки в конце программы. Процедура помещается в основной программе после раздела описания переменных и перед разделом операторов основной программы.

Все переменные, представленные в разделе описаний основной программы, называются глобальными. Они действуют как в разделе операторов основной программы, так и в любой процедуре. Переменные, представленные в разделе описаний процедуры, называются локальными. Они действуют только в рамках процедуры и недоступны операторам основной программы.

Формальные параметры – это наименование фиктивных переменных, через которые передается информация из программы в процедуру (входные параметры) либо из процедуры в программу (выходные параметры). Выходным параметрам присваиваются результаты вычислений.

Описание процедуры, расположенное в описательной части программы, само по себе никакого действия не производит. Выполнение программы начинается с выполнения раздела операторов основной программы. Для обращения к процедуре применяется оператор вызова процедуры, который имеет вид:

Имя процедуры(список фактических параметров).

Фактические параметры отделяются друг от друга запятыми и являются реальными объектами программы, замещающими в разделе операторов процедуры формальные параметры. Описание фактических параметров содержится в разделе описаний переменных основной программы.

При вызове процедуры компьютер производит следующие действия. Сначала устанавливает взаимно однозначное соответствие между фактическими и формальными параметрами.

Соответствие между фактическими и формальными параметрами должно быть следующим:

– число фактических параметров должно быть равно числу формальных параметров;

– соответствующие фактические и формальные параметры долж­ны совпадать по порядку следования и по типу.

Данные из основной программы поступают в процедуру. Затем управление передается процедуре. Результаты выполнения процедуры передаются в основную программу и управление передается на оператор, следующий за вызовом процедуры. Соответствующие формальные и фактические пара­метры во избежание путаницы обычно обозначают разными буквами.