Реклама:

15. Писать строку города в Файл

16. Писать сумму штата в Файл

17. Прибавить численность участка к сумме штата

18. Прибавить сумму города к сумме округа

19. Прибавить сумму округа к сумме штата

20. Прибавить сумму штата к сумме страны

21. Читать запись численности участка

22. Установить сумма города значение 0

23. Установить сумма округа значение 0

24. Установить сумма штата значение 0

25. Установить сумма страны значение 0

26. Поместить город в этот город

27. Поместить округ в этот округ

28. Поместить штат в этот штат

На этом этапе все перечисленные выше операции должны быть очевидными, за исключением, возможно, последних трех. Эти операции нужны, чтобы устанавливать значения сравнения для завершения повторений. В показанной на рис. 3.10 структуре программы содержатся четыре повторения.

ОБРАБОТКА ТЕЛА ОТЧЕТА является повторением компонента ОБРАБОТКА ШТАТА и завершается при окончании файла численности избирателей.

ОБРАБОТКА ТЕЛА ШТАТА представляет собой повторение компонента ОБРАБОТКА ОКРУГА и завершается при появлении нового штата. Изменение штата (прошу прощения за каламбур) можно распознать только в том случае, если имя текущего обрабатываемого штата запомнено или где-то «сохранено».

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

С учетом этих соображений операция 28 «сохраняет» текущее значение переменной «штат» в переменной «Этот штат», чтобы обеспечить управление завершением повторения обработки тела штата.

ОБРАБОТКА ТЕЛА ОКРУГА является повторением компонента ОБРАБОТКА СТРОКИ 0 ГОРОДЕ и должна завершаться при появлении нового округа. Исходя из этого, операция 27 сохраняет текущее значение округа в переменной «Этот округ» в качестве управляющей переменной для данного повторения.

До добавления исполнимых операций ОБРАБОТКА СТРОКИ 0 ГОРОДЕ представляет собой повторение компонента ОБРАБОТКА ЗАПИСИ ЧИСЛЕННОСТИ УЧАСТКА и завершается, когда распознается новый город. Операция 26 сохраняет имя обрабатываемого в текущий момент города в переменной «этот город» в качестве управляющей переменной для данного повторения.

Всякий раз, когда данные обрабатываются упорядоченными группами, вероятно, что требуются управляющие переменные для контроля завершения соответствующих повторений.

Теперь, когда имеется список операций, следующий этап состоит в распределении этих операций по структуре программы. Результат такого распределения представлен на рис. 3.10.

Распределение операций 1 - 10 не вызывает сомнений. Операцию И, Писать строку города в отчет, нужно выполнять один раз для каждой строки города, в конце компонента программы, обрабатывающего строку города. Поэтому операция 11 распределяется на отведенное ей место, в рамках компонента ПОЛУЧЕНИЕ СТРОКИ ГОРОДА, в его конце (справа).


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