5.
if <U1>
then <C1>
else <C2>;
repeat
C3
until <U2>
6.
while <U1> do
repeat
<C1>
until <U2>
Структурная методика алгоритмизации
—
это не только форма
описания алгоритма, но это еще и
способ мышления
программиста.
Создавая алгоритм, нужно стремиться составлять его из стандарт-
ных структур. Если использовать строительную аналогию, можно
сказать, что структурная методика построения алгоритма подобна
сборке здания из стандартных секций в отличие от складывания по
кирпичику.
Еще одним важнейшим технологическим приемом структур-
ного программирования является
декомпозиция решаемой задачи
на
подзадачи —
более простые с точки зрения программирования
части исходной задачи. Алгоритмы решения таких подзадач назы-
ваются
вспомогательными
алгоритмами.
В
связи с этим возможны
два пути в построении алгоритма:
• «сверху вниз»: сначала строится основной алгоритм, затем
вспомогательные алгоритмы;
• «снизу вверх»: сначала составляются вспомогательные алго-
ритмы, затем основной.
Первый подход еще называют методом
последовательной
дета-
лизации, второй
— сборочным
методом.
Сборочный метод предполагает накопление и использование биб-
лиотек вспомогательных алгоритмов, реализованных в языках про-
граммирования
в
виде подпрограмм, процедур, функций. При после-
довательной детализации сначала строится основной алгоритм, а за-
тем
в него
вносятся обращения
к
вспомогательным алгоритмам первого
уровня. После
этого
составляются вспомогательные алгоритмы перво-
го уровня, в которых могут присутствовать обращения к вспомога-
тельным алгоритмам второго уровня, и т.д. Вспомогательные алго-
ритмы самого нижнего уровня состоят только из простых команд.
Метод последовательной детализации применяется
в
любом кон-
струировании сложных объектов. Это естественная логическая пос-
ледовательность мышления конструктора: постепенное углубление в
детали.
В
нашем случае речь
идет тоже о
конструировании, но только
не технических устройств, а алгоритмов. Достаточно сложный алго-
ритм другим способом построить практически невозможно.
Методика последовательной детализации позволяет организо-
вать работу коллектива программистов над сложным проектом. На-
272