Реклама:

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

Если мы предполагаем, что заказ окажется корректным, то это предположение впервые будет обосновано или опровергнуто при чтении записи ИТОГИ для этого заказа. После этого чтения можно сравнить Итоги в записи ИТОГИ с реальными итогами для фактических строчных элементов заказа. Чтобы такое сравнение было осуществимо, программа должна накапливать эти «реальные» итоги.

Итак, следующий этап процесса отката состоит в выборе в программе позиций, где можно поместить «отводы». «Отвод» представляет собой краткое обозначение процесса «ответвления» с одной стороны исходного выбора на другую сторону. Поэтому именно в позициях отвода можно тестировать справедливость исходных предположений. Часто легче всего удается найти эти позиции путем изучения структуры (структур) входных данных. На рис. 5.1 позиция для ОТВОДА определилась бы в рамках компонента КОРРЕКТНЫЕ КОНТРОЛЬНЫЕ ИТОГИ. В структуре программы на рис. 5.3 ему соответствует компонент ОБРАБОТКА КОРРЕКТНЫХ КОНТРОЛЬНЫХ ИТОГОВ. Конечно, теперь выбор теряет свою чистоту и становится более похожим на последовательность, причем довольно странную. Поэтому на данном этапе нужно заменить операторы «выб» и «или» на «допустить» и «принять». Эта замена означает просто, что теперь мы не выбираем вариант, согласно которому заказ корректен. Мы допускаем, или предполагаем, что дело обстоит именно так, но сознаем при этом, что позднее нам может потребоваться принять факт, что предположение было ошибочным.

Тонное место для оператора «Отвод» должно находиться сразу за позицией, в которой программа впервые располагает информацией для принятия решения, касающегося Отвода. В нашем случае это место непосредственно следует за оператором ОБ. КОРР. ТЕЛА конец. Здесь, согласно правилу предварительного чтения, запись ИТОГИ помещается во входную область, где она подвергается рассмотрению.

Кроме того, нужно добавить в подходящее место операторы накопления итогов элементов и, как всегда при таких операторах, включить дополнительные операторы очистки накопителей. Любые трудности, связанные с размещением этих операторов, могут быть разрешены с применением уже рассмотренных рекомендаций о привязке исполнимых операторов к местам в рамках нашей основной методики конструирования. Оператор «Отвод» представляет собой просто «СО ТО» в сторону «Принять» исходного выбора. Эти изменения в программе отражены в следующем структурированном изложении.

Структурированное изложение для этапа 2 программы контрольных итогов

КОНТРОЛЬ поел

Открыть файлы, Читать запись

ОБ. ЗАКАЗА повт пока не КФ - Файл заказов

Установить СЧЕТЧИК ЭЛЕМЕНТОВ значение 0 * Установить СУММА ЗАКАЗА значение 0 * ОБ.ТЕЛА ЗАКАЗА допустить Корректный * ОБ.КОРР.ТЕЛА повт пока не ИТОГИ


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