Последовательность (последовательное соединение).
Выполняется несколько последовательных команд (операторов). На рис.2 они обозначаются буквами А и В.
|
Условие (проверка условия).
2.1. Условие с двумя вариантами действий.
Если истинно условие, то выполняется блок (оператор) А, иначе выполняется блок В (оператор В) (рис.3).
|
2.2. Условие с одним вариантом действий.
Если истинно условие, то выполняется блок (оператор) А, иначе ничего не выполняется и управление передается следующему оператору (рис.4).
Цикл (циклическое повторение).
Цикл с предусловием.
В начале цикла проверяется условие и после этого циклически выполняется некоторое действие А (блок операторов) до тех пор, пока условие все еще верно (истинно). Как только условие становится ложным, цикл завершается (рис.5).
|
Цикл с постусловием.
Некоторое действие А (блок операторов) повторяется до тех пор, пока условие в конце цикла не станет верным (истинным). Как только условие в конце цикла становится истинным, цикл завершается (рис.5).
Во всех трёх случаях, во всех стандартных структурах блоки А и В могут в свою очередь состоять из таких же стандартных структур. Т.е. одна структура может быть вложена в другую произвольное количество раз. Структурный алгоритм – это алгоритм, в котором используются только стандартные структуры – последовательность, условие, цикл, а также ввод-вывод. Структурная программа – это программа, которая точно соответствует структурному алгоритму. Структурное программирование – процесс разработки структурных алгоритмов и программ. Справедлива следующая теорема о структурных алгоритмах: для каждого алгоритма существует эквивалентный ему структурный алгоритм.
Пример 4. Напишем два варианта структурных алгоритмов решения задачи табулирования функции, на основе циклов (рис.6).
В некоторых языках программирования отсутствуют полноценные структуры для реализации условий и циклов. Поэтому в дополнение к трём стандартным структурам иногда применяется безусловный переход. При выполнении безусловного перехода управление передается на указанный шаг (пункт) в алгоритме (рис.7).
Использование безусловного перехода приводит к нарушению принципов структурного программирования. Поэтому его применение в структорном программировании – ограничено. Однако существуют случаи, когда без него не обойтись, например при обработке критических ошибок. В других ситуациях хороший стиль программирования полностью исключает использование этой конструкции. Считается плохим тоном писать структурные программы с использованием безусловного перехода. Следует также отметить, что в языках машинного (низкого) уровня типа Ассемблер без этих конструкций обойтись невозможно.