Реклама:

Кроме того, как видно из рис. 2.35, входные компоненты 2 и ЗАПИСЬ являются повторяемыми компонентами во входной структуре, и соответствующие им компоненты структуры программы тоже являются повторяемыми. Аналогично входные компоненты ГС, ГМ, ГБ, Т, М и Б представляют собой выбираемые компоненты, и они становятся выбираемыми компонентами в структуре программы. Как мы увидим позднее, такая непосредственная трансляция возникает не всегда.

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

Рис. 2.35. Добавление не имеющих соответствия компонентов входных данных.

Рассмотрев все компоненты структуры входных данных, перейдем теперь к не имеющим соответствия компонентам выходной структуры.

В структуре выходных данных не имеют какого-либо соответствия на входе только компоненты КОЛИЧЕСТВО Т, КОЛИЧЕСТВО М и КОЛИЧЕСТВО Б. Как слить их в структуре программы? На первый взгляд, это просто подкомпоненты компонента ТЕЛО ФАЙЛА, который был слит с одноименным компонентом из входной струтуры, что дало компонент ОБРАБОТКА ТЕЛА ФАЙЛА в программе. Но они не содержатся в компоненте ОБРАБОТКА ЗАПИСИ ни как последовательные, ни как повторяемые, ни как выбираемые части. Поэтому их нужно поместить вне этого компонента.

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

Рис. 2.36. Добавление не имеющих соответствия компонентов выходных данных.

Что мы знаем об этих компонентах КОЛИЧЕСТВО? Они могут возникнуть только после того, как будет обработан весь набор записей. Поэтому их следует поместить вслед за компонентом ОБРАБОТКА ЗАПИСИ. Как видно из рис. 2.36, удобно добавить в этом месте еще один компонент, назвав его ОБРАБОТКОЙ КОЛИЧЕСТВ.

Такое расширение структуры программы изменило внутреннюю структуру компонента ОБРАБОТКА ТЕЛА ФАЙЛА. На рис. 2.35 это была простейшая конструкция повторения с единственной повторяемой частью ОБРАБОТКА ЗАПИСИ. Что же с ней произошло?

Теперь ОБРАБОТКА ТЕЛА ФАЙЛА представляет собой последовательность с двумя последовательными частями: ОБРАБОТКА ЗАПИСИ и ОБРАБОТКА КОЛИЧЕСТВ. (Если бы мы не добавили компонент ОБРАБОТКА КОЛИЧЕСТВ, ОБРАБОТКА ТЕЛА ФАЙЛА все равно стала бы последовательностью, но состояла бы из четырех последовательных частей. )

Однако одной из последовательных частей является ОБРАБОТКА ЗАПИСИ, представляющая собой также и повторяемую часть. Тем самым нарушаются правила структуры, разъясненные в разд. 2.3. Поэтому, чтобы откорректировать структуру и вернуть компонент ОБРАБОТКА ТЕЛА ФАЙЛА в правильную последовательность, нужно добавить компонент ОБРАБОТКА ТЕЛА ЗАПИСИ, как показано на рис. 2.36.

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

Перечисление и распределение исполнимых операций

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

1) данную пользователем спецификацию того, что должна делать программа;

2) выходной язык, на котором предполагается реализовать программу.


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