Реклама:

12.2. Кодирование основных конструкций

В любых современных программах нужно кодировать три основных конструкции' структурного программирования: последовательность, выбор и повторение. Кроме того, требуется кодировать переход, или ветвление, но это не совсем конструкция, а механизм, который в большинстве языков разрешается кодировать несколькими вполне наглядными способами.

Последовательность настолько тривиальна, что мы не станем тратить на нее время, а сосредоточим внимание на примерах выбора и повторения.

Кодирование на Коболе

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

Конструкция выбора лучше всего кодируется на Коболе использованием операторов ЕСЛИ-ТО. Например,

ЕСЛИ КЛЮЧ РАВНО А

ПИСАТЬ НОВАЯ - ЗАПИСЬ ЧИТАТЬ А-ФАИЛ

ИНАЧЕ

ПИСАТЬ ОШИБКА

ПОСЛЕ ПРОДВИЖЕНИЯ 1 СТРОК ЧИТАТЬ В-ФАИЛ

В Коболе нет средств для явного обозначения конца выбора. Некоторые организации станут настаивать на включении комментария, указывающего конец структуры. В случае возникновения необходимости в больших множественных условных структурах Кобол предоставляет возможность употреблять множественные и даже вложенные конструкции ЕСЛИ-ТО.

Повторение чаще всего реализуется на Коболе конструкцией ВЫПОЛНИТЬ-ДО. Вот типичный пример:

ВЫПОЛНИТЬ ГРУППА-ОБРАБОТКИ ДО ИД-ГРУППЫ НЕ РАВНО GID

В этой конструкции блок кодировки, представляемый именем ГРУППА-ОБРАБОТКИ, выполняется последовательно, пока значение в поле с именем ИД-ГРУППЫ не перестанет быть равным значению в поле GID. «ГРУППА-ОБРАБОТКИ» представляла бы собой «параграф» кодировки, расположенной физически где-то в другом месте исходного кода. Процесс начинается со сравнения значения в ИД-ГРУППЫ с значением в GID. Если они равны, программа переключается на блок ГРУППА-ОБРАБОТКИ и выполняет операторы из этого блока. Затем происходит возврат и новое сравнение ИД-ГРУППЫ с GID. Если их значения по-прежнему равны, то процесс повторяется, если нет, то программа переходит к следующему оператору. Очевидно, что, для того чтобы повторение когда-либо прекратилось, нужно изменить одно й3 значений ИД-ГРУППЫ или GID каким-либо действием в рамках ГРУППА-ОБРАБОТКИ.

Замечание. Необходимость «ветвления» для конкретизации блока ВЫПОЛНИТЬ ГРУППА-ОБРАБОТКИ демонстрирует «выносную» особенность кодирования на Коболе. В отличие от языка ПЛ/1 Кобол не позволяет поместить конкретизацию процесса ГРУППА-ОБРАБОТКИ «на месте», внутри самой конструкции повторения. Ее можно закодировать только «на стороне», как мы и поступили.

При этом типе повторения всегда имеется возможность выполнить процесс нуль раз. Например, если в начале этого конкретного повторения ИД-ГРУППЫ не равен GID, то ГРУППА-ОБРАБОТКИ совсем не будет выполняться.


⇐ Предыдущая страница| |Следующая страница ⇒