ОСНОВНЫЕ СТРУКТУРЫ АЛГОРИТМОВ
Рис. 1 Объединение двух линий потока
CD
Символ, состоящий из двух частей, отображает начало и конец цикла. Блоки, состав-ляющие тело цикла записыва-ются между этими символами. Обе части цикла имеют один и тот же идентификатор. Условия для инициализации, прираще-ния, завершения и т.д. помеща-ются внутри символа в начале или в конце в зависимости от расположения операции, прове-ряющей условие
Символ отображает выход в
часть схемы и вход из другой
части этой схемы и использует-
ся для обрыва линии и продол-
жения ее в другом месте. Соот-
ветствующие символы-
соединители должны содержать одно и то же уникальное обо-значение
Символ отображает выход во внешнюю среду и вход из внешней среды (начало или ко-нец схемы). Соответствующее действие записывается внутри символа
Символ используют для добав-ления описательных коммента-риев или пояснительных запи-сей в целях объяснений или примечаний. Пунктирные ли-нии в символе комментария связаны с соответствующим символом или могут обводить группу символов. Текст ком-ментариев или примечаний должен быть помещен около ограничивающей фигуры
Символы в схеме должны быть расположены равномерно. Следует придерживаться разумной длины соединений и минимального числа длинных линий. Формы символов, установленные ГОСТ 19.701– 90, должны служить руководством для фактически используемых символов. Не должны изменяться углы и другие параметры, влияющие на соответствующую форму символов. Символы должны быть по возможности одного размера.
>
«
В схемах может использоваться идентификатор символов, который располагается слева над симво-лом (нумерация символов).
Потоки данных в схемах показываются линиями. Направление потока слева направо и сверху вниз считается стандартным. В случаях, когда необходимо внести большую ясность в схему или поток имеет
направление отличное от стандартного, на линиях используются стрелки, указывающие это направле-ние.
В схемах следует избегать пересечения линий. Пересекающиеся линии не имеют логической связи между собой, поэтому изменения направления в точках пересечения не допускаются. Если две или бо-лее входящих линии объединяются в одну исходящую линию, то место объединения линий смещается (рис. 16).
Вход |
Действие 1 |
Основные структуры алгоритмов (ОСА) – это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
Действие 2 |
ОСА используются при структурном подходе к разработке алгоритмов и программ, предполагающем использование нескольких основных структур, комбинация которых дает все многообразие алгоритмов и программ.
К основным алгоритмическим структурам относятся линейная, разветв-ляющиеся и циклические структуры. Рассмотрим их несколько подробнее.
.:. |
1 Линейная структура (следование)
Данная структура предполагает последовательное размещение блоков и групп
Действие N |
блоков в алгоритмической схеме. В программе линейная структура реализу-ется последовательным размещением операторов (рис. 17).
Выход |
2 Разветвляющиеся структуры
Эти структуры в своем составе содержат блок условия и различные конст-
Рис. 17 Ли- нейная струк- тура |
рукции ветвления, обеспечивающие альтернативные пути развития вычисли-тельных процессов. Можно выделить несколько разветвляющихся структур, от-личающихся друг от друга числом ветвлений и наличием выполняемых дейст-вий: разветвление (рис. 18, а), обход (рис. 18, б), множественный выбор (рис. 18, в).
Структура разветвления (рис. 18, а) предполагает проверку условия и в за-висимости от истинности условия будет выполняться "Действие 1" (если усло-вие принимает значение "истина") или "Действие 2" (если условие принимает значение "ложь").
Структуру обхода (рис. 18, б) можно считать частным случаем разветвления, когда в одной из вет-вей обработки данных не содержится никаких действий.
Множественный выбор (рис. 18, в) предполагает возможность развития вычислительного процесса по одному из нескольких направлений. В процессе решения данной алгоритмической схемы будет выполняться та ветвь обработки данных, для которой вычисленное в блоке "Решение" значение переменной D совпадет со значением одной из констант D1, D2, …, Dn.
3 Циклические структуры Циклические алгоритмы являются наиболее распространенным видом алгоритмов, в которых преду-
сматривается повторное выполнение определенного набора действий в зависимости от выполнения
некоторого условия.
Существуют два основных вида циклических алгоритмов: циклические алгоритмы с предусловием (цикл "ПОКА"), циклические алгоритмы с постусловием (цикл "ДО"). Они отличаются друг от друга местоположением условия выхода из цикла.
Цикл с предусловием (рис. 19, а) начинается с проверки условия выхода из цикла. Если оно ложно, то выполняются те действия, которые составляют тело цикла. В противном случае, если логическое вы-ражение истинно, то этот цикл прекращает свои действия. Особенность этого цикла состоит в том, что цикл может не выполниться ни разу, если условие выхода при первой же проверке даст истинный ре-зультат.
Цикл с постусловием (рис. 19, б) функционирует иначе. Сначала выполняется один раз те действия, которые составляют тело цикла, затем проверяется логическое выражение, определяющее условие вы-хода из цикла. Если условие выхода истинно, то цикл с постусловием прекращает свою работу, в про-тивном случае происходит повторение действий, указанных в цикле. Этот цикл всегда выполняется хо-тя бы один раз, так как первая проверка условия выхода происходит после выполнения действий, со-ставляющих тело цикла.