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

Рис. 3.5. Составление отчета, структура программы с распределением операций.

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

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

Структурированное изложение для программы составления отчета:

ПОЛУЧЕНИЕ ОТЧЕТА поел

Открыть входной, Открыть выходной Читать входной ОБРАБОТКА ЗАГОЛОВКА поел

Поместить ЗАГОЛОВОК ОТЧЕТА в печатаемую строку Писать заголовок отчета Читать входной ОБРАБОТКА ЗАГОЛОВКА конец ОБРАБОТКА ТЕЛА повт пока не Конец-файла ОБРАБОТКА ГРУППЫ КЛИЕНТА поел

Установить транзакции значение О Установить сумма значение О ОБРАБОТКА ЗАГОЛОВКА КЛИЕНТА поел

Поместить ИД клиента в печатаемую строку Читать входной ОБРАБОТКА ЗАГОЛОВКА КЛИЕНТА конец ОБРАБОТКА ТЕЛА ГРУППЫ КЛИЕНТА повт пока не новый заголовок клиента или Конец-файла ОБРАБОТКА ЗАПИСИ О КЛИЕНТЕ поел Прибавить 1 к транзакциям Прибавить количество к сумме Читать входной ОБРАБОТКА ЗАПИСИ О КЛИЕНТЕ конец ОБРАБОТКА ТЕЛА ГРУППЫ КЛИЕНТА конец Поместить транзакции в печатаемую строку Поместить сумму в печатаемую строку Писать строку о клиенте ОБРАБОТКА ГРУППЫ КЛИЕНТА конец ОБРАБОТКА ТЕЛА конец

ПОЛУЧЕНИЕ ЗАВЕРШИТЕЛЯ ЗАПИСИ поел

Поместить ЗАВЕРШИТЕЛЬ ЗАПИСИ в Печатаемую строку

Писать завершитель записи ПОЛУЧЕНИЕ ЗАВЕРШИТЕЛЯ ЗАПИСИ конец Закрыть входной, Закрыть выходной СТОП

ПОЛУЧЕНИЕ ОТЧЕТА конец

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

3.3. Программа записей об избирателях

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


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