Реклама:

Ясно, что операции 2 и 3 «открытия» должны быть помещены аналогичным образом, но в начало (на левый край) ПРОГРАММЫ ОТЧЕТА. Затем операции 4 и 5 «закрытия» следует поместить в конец ПРОГРАММЫ ОТЧЕТА, но до операции 1 (СТОП).

Операцию 6 «Писать тип файла» нужно выполнять «один раз на тип файла». Где обрабатывается тип файла? Как ни странно, в компоненте программы ОБРАБОТКА ТИПА ФАЙЛА. Но у этого компонента уже существуют три подкомпонента: ОБРАБОТКА П, ОБРАБОТКА ГМ и ОБРАБОТКА ГБ. Операция 6 должна появляться после каждого из этих подкомпонентов, потому что все они являются выбираемыми подкомпонентами, а операцию 6 можно выполнить только после того, как принято решение, какой именно тип файла представлен. Это означает, что ОБРАБОТКА ТИПА ФАЙЛА должна превратиться из выбора трех частей в последовательность двух частей: сначала выбор, а потом операция 6. На рис. 2.37 этот выбор назван ОБРАБОТКОЙ ТЕЛА ТИПА.

Очевидно, что операция 7 «Писать дату создания файла» должна быть просто подкомпонентом компонента программы ОБРАБОТКА ДАТЫ СОЗДАНИЯ.

Операции 8, 9 и 10, т.е. операции «Писать количества» аналогичным образом распределяются соответственно по компонентам программы ОБРАБОТКА КОЛИЧЕСТВА Т, ОБРАБОТКА КОЛИЧЕСТВА М и ОБРАБОТКА КОЛИЧЕСТВА Б.

Отложим операцию 14 «Читать входной» напоследок, поскольку она отличается некоторыми особыми характеристиками.

Операции 15, 16 и 17 делают в сущности одно и то же, устанавливают накопителю начальное значение нуль. Когда это требуется? Очевидно, только один раз на всю программу. Поэтому каждая из этих операций должна стать подкомпонентом максимального компонента ПРОГРАММА ОТЧЕТА программы. В каком месте последовательности они должны появляться? Очевидно, нужно инициализировать эти накопители в НАЧАЛЕ программы и поэтому следует поместить рассматриваемые операции с левого края компонента ПРОГРАММА ОТЧЕТА. Они могут появляться до или после открытия файлов, но заведомо до выполнения любой обработки.

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

Рис. 2.37. Размещение исполнимых операций.

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

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


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