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

Рис. 7.9. Системная блок-схема для программы составления отчета.

Две программы Р1 и Р2 с рис. 7.9 на самом деле тривиальны. Структура программы Р1 в сущности такая же, как и структура данных ВХОД, а программа Р2 будет обладать в основном такой же структурой, как структура данных ОТЧЕТ. Структуры этих двух простых программ показаны на рис. 7.10.

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

Рис. 7.10. Структуры программы составления отчета.

Читатель видит, что автор был прав, утверждая, что эти две программы исключительно просто конструируются и пишутся. Читатель мог бы справедливо заметить: «Я в состоянии написать программу составления отчета без всего этого вздора относительно разрешения столкновений». Pali*

зумеется, Зт0 правильное замечание. Но применение даіь ного мето^а «наведения порядка» в ситуации граничного столкновен^я приводит к набору очень простых программ. Так в чеч, же состоит преимущество очень простых программ по с|равнению с более сложными?

Как ц0)Кет подтвердить любой человек, занимавшийся функцией сопровождения систем, часто оказывается неизмеримо ле5гче сопровождать 100 простых, хорошо документированные программ, чем всего одну весьма сложную, не-документированную или плохо документированную. Итак, исключите^]ЬН0 ценно было бы иметь процесс, который всегда буД^т сводить сложные проблемы к большему количеству очеЭ|1ь простых проблем. Когда такой процесс является част^ю методики конструирования, которая подобно методике «^ексона порождает ясную, точную документацию, этот прои.%,с становится не только ценным, но почти необходимым^ еСЛИ он способствует сокращению до приемлемых разм^р0В огромных затрат на сопровождение систем обработки , даНных.

ПрогГ|)амме р| соответствует следующее структурированное изл<0жение.

Р15%

^^рыть входной файл, Открыть ПФ, Читать блок ТЕЛО повт пока не Конец-файла на входе ОБРАБОТКА БЛОКА поел Установить 1=1

ОБ. ТЕЛА повт пока не Конец-блока (500 символов) Писать символ (I) в ПФ, Установить 1=1+1 ОБ. ТЕЛА конец Читать блок ОБРАБОТКА БЛОКА конец рЧ, ТЕЛО конец

Скрыть входной файл, Закрыть ПФ, СТОП

Как *цы отмечали, ИСКЛЮЧИТЕЛЬНО ПРОСТО!

Конеііц^лока обычно легко идентифицируется символом КБ, в пр<>ооГиВном случае нужно инициализировать счетчик символов, а потом прибавлять к нему по единице всякий раз, когда СиМВОл пишется в файл ПФ.

ПереЦ^енная представляет собой счетчик места для символ^ в блоке и дает гарантию того, что в проме-

- файл записывается правильный символ. В случае

Ж^ходимости эта переменная могла бы служить и призна-Конца-блока.

К°М Структурированное изложение для программы Р2 следующее:

Р2 поел

Установить N=1, Установить счетчик симв = 1 Открыть ПФ, Открыть отчет, Читать символ (из ПФ) в строку (N)

Установить N=N+1 Писать заголовок

ПОЛУЧЕНИЕ ТЕЛА ОТЧЕТА повт пока не Конец-файла в ПФ ПОЛУЧЕНИЕ СТРОКИ ДЛЯ ЗАПИСИ поел ПСДЗ. ТЕЛО повт пока не Конец-записи '(счетчик симв = 150) или Конец-файла в ПФ ОБРАБОТКА СИМВОЛА поел

Читать символ в строку (N) Установить счетчик симв = счетчик симв + 1

Установить N=N+1 ОБРАБОТКА СИМВОЛА конец ПСДЗ. ТЕЛО конец Писать запись из строки в отчет Установить счетчик симв = 1, Установить N=1 Читать символ (из ПФ) в строку (N) Установить N=N+1 ПОЛУЧЕНИЕ СТРОКИ ДЛЯ ЗАПИСИ конец ПОЛУЧЕНИЕ ТЕЛА ОТЧЕТА конец Писать завершитель Закрыть ПФ, Закрыть отчет, СТОП Р2 конец


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