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

Рис. 2.39. Запись только с тремя типами.

Если запись описана таким способом и если при проверке обнаружено, что она не принадлежит ни типу 1, ни типу 2, то она ДОЛЖНА относиться к типу 3. Никакие другие типы не возможны. Если бы имелась возможность другого типа, например ошибки, то для учета ошибки нужно было бы добавить четвертый выбор. Поэтому не должен вызывать сомнений тот факт, что необязательно и даже неправильно конкретизировать последнее условие выбора. Это неправильно потому, что в случае точной конкретизации последнего условия, если появляется запись, которая не удовлетворяет в точности ни одному из условий, то такая запись не будет обработана, что почти наверняка не входило в намерения разработчика программы.

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

Здесь уместно заметить, что в конструкции выбора имеются некоторые подразумеваемые ветвления. Например, если в структурированном изложении выбора на рис. 2.38 условие Р не справедливо, то программа переключается на часть, следующую за «процессом Р», и продолжает проверять, справедливо ли условие 0, и т.д. Как только некое условие проверено и оказалось справедливым, выполняется соответствующий процесс и программа переключается на оператор конец выбора, в данном случае на оператор А конец.

Структурированное изложение для конструкции повторения выглядит похожим, причем это не обманчиво. Однако у этой конструкции есть несколько особенно важных аспектов, выраженных в изложении. Фраза «пока не услов х» описывает условие, вызывающее прекращение повторения. Очевидно, что если это условие справедливо в начале процесса, то никаких «процессов х» выполняться не будет, потому что сначала проверяется условие. Таким образом, в первой строке повторения неявно присутствует выбор, который предписывает: «Если условие завершения повторения справедливо, то переключиться на часть программы, следующую за повторением, в противном случае выполнить повторяемую часть (в данном случае «процесс х»). Для повторения оператор конец практически означает переключение обратно в начало повторения.

Конечно, для того чтобы раз начавшееся повторение когда-нибудь закончилось, в повторяемой части должны изменяться значения, которые проверяются в фразе «пока не», или же повторение нужно ограничить оператором, предписывающим «выполнить процесс 10 раз» или что-нибудь в этом роде.

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

Теперь, когда вы научились писать структурированные изложения для простых конструкций повторения, не должно возникать трудностей и при написании его для полной структуры программы, представленной на рис. 2 37. Перед тем как приступить к работе, нужно только задаться для каждого выбора или повторения вопросом: «В чем состоят надлежащие условия соответственно для выбора и завершения?»


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