Базовые управляющие структуры алгоритмов (основные алгоритмические конструкции)
Метод структурной алгоритмизации. Этот метод основан на визуальном представлении алгоритма в виде последовательности управляющих структурных элементов − управляющих структур. Принцип структурной алгоритмизации заключается в том, чтологическая структура любой программы может быть выражена комбинацией из следующих базовых структур:
1) Композиция (следование);
2) Альтернатива (ветвление);
3) Итерация[2] (цикл).
Структурная блок-схема−композиция из базовых алгоритмических структур.
Примем следующие обозначения: S1 и S2 представляют собой в общем случае операции, группы операций или алгоритмические структуры (базовые управляющие структуры) для соответствующего исполнителя, В – это условие, в зависимости от истинности (true) или ложности (false) которого управление передаётся по одной из двух ветвей.
Композиция, или следование − это линейная конструкция алгоритма, составленная из последовательно следующих друг за другом функциональных вершин (рис. 9.2).
Операции, группы операций или базовые структуры алгоритмов выполняются последовательно друг за другом.
Рис. 9.2. Базовая управляющая структура «следование»
Альтернатива, или ветвление – это конструкция ветвления, имеющая предикатную вершину.
Структура обеспечивает выбор между двумя альтернативами: если B – ИСТИНА (TRUE) (не равно нулю), то выполняется структура S1; если B – ЛОЖЬ (FALSE) – структура S2 (рис. 9.3). При этом происходит разветвление алгоритма.
Если в структуре «Ветвление» отсутствует операция, группа операций или алгоритмическая структура S2, которую необходимо выполнить при ложности выражения B, получается сокращённая форма структуры «Ветвление» (рис. 9.4), которую ещё называют структурой «Обход».
Рис. 9.3. Базовая управляющая структура «Ветвление» | Рис. 9.4. Сокращённая форма структуры «Ветвление» |
Итерация, или циклы – это циклическая конструкция алгоритма, состоящая из композиции и альтернативы.
Алгоритмическая структура (базовая управляющая структура) «Итерация, или цикл» может быть представлена в двух формах: с предусловием (рис. 9.5) и с постусловием (рис. 9.6).
Цикл представляет собой повторное выполнение определённого набора действий при выполнении некоторого условия. Именно циклы позволяют записывать длинные последовательности операций небольшим числом команд.
В цикле с постусловием типа «ДО»(рис. 9.5) проверка условия выхода из цикла выполняется после очередного действия. Цикл«ДО»выполняется до тех пор, пока условие не станет истинным.
На рисунке 9.6 показан цикл типа«ПОКА» с предусловием. Действия внутри этого цикла повторяются, пока выражение B в блоке ветвления истинно, причём сначала проверяется условие, а затем выполняется действие S.
Обязательными блоками в этих структурах являются: установка начального значения параметра; проверка условия достижения конечного значения параметра; изменение параметра. Отличаются они способом проверки окончания цикла.
Цикл типа«ДЛЯ», или цикл с параметром (рис. 9.7) является модификацией цикла «ПОКА» для ситуации, когда заранее известно количество повторений некоторых действий. Все три необходимых блока собираются в один, в котором указывается начальное, конечное значение параметра и шаг изменения. Запись в блоке заголовка цикла на рисунке 9.7 показывает пример описания заголовка цикла, в котором действия повторяются столько раз, сколько целых значений приобретает параметр цикла i от своего начального значения iн до конечного iк с шагом iш. Шаг не указывается, если он равен 1.
Рис. 9.5. Структура «ЦИКЛ-ДО» (цикл с постусловием) | Рис. 9.6. Структура «ЦИКЛ-ПОКА»(цикл с предусловием) | Рис. 9.7. Цикл с параметром (использование символа «подготовка») |
В соответствии с наличием в алгоритмах управляющих структур композиции, альтернативы и итерации алгоритмы классифицируют: на линейные, разветвлённые и циклические алгоритмы.