Реклама:

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

Что означает вышесказанное для программы, которую мы теперь конструируем?

Операцию 14 «Читать входной» нужно поместить после операции 2 «Открыть входной» и перед обработкой заголовка. В нашем случае вполне допустимо включить операцию 14 после операции 12, как показано на рис. 2.37. Кроме того, операцию «Читать» нужно поместить после обработки входных записей, т. е. в конце компонента ОБРАБОТКА ЗАПИСИ. В результате компонент ОБРАБОТКА ЗАПИСИ превращается из выбора в последовательность. Как и в случае компонента ОБРАБОТКА ТИПА ФАЙЛА, нужно включить еще один компонент, чтобы поддерживать целостность структуры программы. Этот новый компонент называется ОБРАБОТКА ВЫБР. ЗАП.

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

Написание структурированного изложения

Каждая из основных конструкций, которыми мы поль-

5-1068

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

Конструкции последовательности, выбора и повторения транслируются так, как показано на рис. 2.38.

Кинг Д. Создание эффективного программного обеспечения

Рис. 2.38. Простое структурированное изложение.

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

Структурированное изложение для конструкции выбора немного интереснее. «Услов Р» - это условие (или условия), при справедливости которых выполняется «процесс р». Аналогичным образом связаны между собой «Услов 0» и «процесс 0», а также «Услов К» и «процесс И». «Услов 1Ь записано в скобках, потому что в окончательном варианте программы на реальном языке программирования не нужно специфицировать это условие. Дело в том, Что данная конкретная конструкция выбора описана как включающая три и только три условия выбора. Поэтому третье условие не требуется оговаривать, поскольку в случае, когда несправедливы первые два условия, должно иметь место третье, т. е. последнее.

Например, некая запись может относиться только к одному из трех типов: типу 1, типу 2 или типу 3. Никаких других типов не предусматривается. Соответствующая структура данных показана на рис. 2.39.


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