Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика и ВТ Брукшир.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.07 Mб
Скачать

5.3 Процедурные единицы

В предыдущих главах мы говорили о преимуществах разбиения больших программ на небольшие управляемые единицы. В этом разделе мы сосредоточим наше внимание на понятии процедуры, которая является основным средством получения модульного представления программы, написанной на императивном языке программирования. Процедура также является инструментом, который используется в программе, написанной на объектно-ориентированном языке, для описания того, как объект должен отвечать на различные входные сигналы.

5.3.1Процедуры

Процедура (procedure) — это набор команд для выполнения некоторой задачи, который другие программные единицы могут использовать в качестве абстрактного инструмента. Управление передается процедуре (с помощью команды перехода машинного языка), когда ее действия необходимы, а затем, после завершения выполнения процедуры, снова возвращается исходной программной единице (рис. 5.9). Процесс передачи управления процедуре называется вызовом процедуры. Программную единицу, которая запрашивает выполнение процедуры, мы будем называть вызывающей программой или вызывающим модулем (calling unit).

Во многих отношениях процедура представляет собой небольшую программу, состоящую из операторов описания, за которыми следуют исполняемые операторы, определяющие выполняемые процедурой действия. Как правило, переменная, объявленная в процедуре, является локальной переменной (local variable), то есть ее можно использовать только в данной процедуре. Такой подход исключает путаницу, которая может возникнуть, если две независимые друг от друга про-дуры используют переменные с одинаковыми именами. Переменные, действие которых не ограничивается какой-либо одной частью программы, называются глобальными переменными (global variable), они доступны в любом месте программы. В большинстве языков программирования используются и локальные, и глобальные переменные.

В рассматриваемых нами языках программирования описание процедуры почти такое же, как в нашем псевдокоде (см. главу 4). Оно начинается с выражения, которое называется заголовком процедуры и которое помимо всего прочего содержит имя процедуры. За заголовком следуют операторы, определяющие процедуру более детально.

Однако в отличие от нашего нестрогого псевдокода, в котором мы запрашивали выполнение процедуры с помощью такого выражения, как «Применить процедуру Deacti vateCrypton», большинство современных языков программирования позволяют вызывать процедуру, просто указав ее имя. Например, если GetNames, SortNames и WriteNames являются именами процедур для получения, сортировки и вывода на печать списка имен, то программу, получающую список, сортирующую его и выводящую на печать, можно записать как

GetNames:

SortNames;

WriteNames;

а не

Применить процедуру GetNames. Применить процедуру SortNames. Применить процедуру WriteNames.

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