Главная / Алгоритмы / Алгоритмические структуры

Алгоритмические структуры


По характеру связей между символами различают следующие типовые алгоритмические структуры: линейные, разветвляющиеся и циклические.

Линейный алгоритм

Линейный алгоритм– это алгоритм, в котором все операции выполняются только последовательно (рис.1).



Рисунок 1 - Блок-схема линейного алгоритма

Разветвляющийся (ветвящийся) алгоритм

Разветвляющийся или ветвящийся алгоритм – это алгоритм, в котором последовательность выполнения операций зависит от определенных условий.
Если в алгоритме присутствует «действие 1» и «действие 2» (то есть ветвь 1 и ветвь 2), то это разветвляющийся алгоритм с полной альтернативой (рис.2). Если же вместо «действия 2» предусмотрен переход к выполнению операции «n», которая находится в общей (основной) ветви, то такая форма записи называется неполной альтернативой (рис.3). Во втором случае (то есть в случае неполной альтернативы) в одной из ветвей алгоритма предусмотрены некоторые действия (операции), а во второй ветви нет никаких действий.


Рисунок 2 - Блок-схема разветвляющегося алгоритма с полной альтернативой.


      

Рисунок 3 - Блок-схема разветвляющегося алгоритма с неполной альтернативой.


Циклический алгоритм

Циклический алгоритм – это алгоритм, в котором многократно выполняются одни и те же действия, например с целью многократного выполнения вычислений по одним и тем же зависимостям при различных значениях входящих в них переменных. Использование циклов существенно сокращает объем алгоритма. Можно выделить три основных типа циклических алгоритмов:

  • цикл с параметром (арифметический цикл или цикл со счетчиком);
  • цикл с предусловием;
  • цикл с постусловием.

По способу определения числа повторений различают циклы с заранее неизвестным количеством повторений и заранее известным количеством повторений (циклы с параметром).

В цикле с параметром определенная последовательность операций выполняется несколько раз в зависимости от заданной величины, которая называется параметром цикла. Цикл выполняется, пока параметр цикла принимает значения в заданном диапазоне с заданным шагом. Оператор цикла включает имя переменной, конечное значение и шаг.

Выделяют два типа циклов с условием: цикл с предусловием и цикл с постусловием.

В циклах с предусловием условие проверяется на входе (до операций, выполняемых в цикле). В циклах с постусловием условие проверяется после выполнения всех операций внутри цикла. В этом случае операторы тела цикла будут реализованы хотя бы один раз или до тех пор, пока не станет возможным условие выхода из цикла.

В циклах с постусловием сначала выполняются все операции, включенные в цикл, и только после этого проверяется заданное условие. В зависимости от результата проверки осуществляется выход из цикла или его повторение.

Цикл с условием называют также итерационным циклом.

Для изображения циклов с предусловием и постусловием можно использовать символ «Граница цикла» (рис. 4):


Рисунок 4 - Изображение цикла с помощью символа «Граница цикла»: слева - цикл с предусловием; справа - цикл с постусловием.


Вложенные (внутренние) циклы. Внутри алгоритма циклической структуры может быть помещен другой цикл – вложенный (внутренний) цикл. Вложенный цикл должен полностью находиться в области внешнего цикла. Вложенный цикл может быть один, но может быть и несколько вложенных циклов. Второй вложен в первый, третий – во второй и т.д. На рис.5 с помощью псевдокода представлена структура циклического алгоритма, содержащего несколько вложенных циклов.

Начало цикла 1
    Начало цикла 2
        Начало цикла 3
      Тело цикла 3
      Конец цикла 3

   Конец цикла 2
Конец цикла 1

Рисунок 5 – Структура алгоритма, содержащего несколько вложенных циклов

Для организации и внутреннего, и внешнего циклов могут использоваться разные типы алгоритмических структур (цикл с параметром, цикл с предусловием, цикл с постусловием).
На рис. 6 представлена блок-схема алгоритма с внутренним циклом. В данном случае и внешний и внутренний циклы организованы на базе алгоритмической структуры «цикл с параметром».




Рисунок 6 – Блок-схема алгоритма с внутренним циклом

На каждом шаге по внешнему циклу внутренний цикл выполняется несколько раз. Количество внутренних циклов на каждом внешнем цикле зависит от параметра внутреннего цикла.
Пусть, например, задано, что параметр внешнего цикла меняется от 1 до 5 с шагом 1, а параметр внутреннего цикла – от 1 до 10 с шагом 1.
Это означает, что на каждом шаге по внешнему циклу внутренний цикл будет выполняться 10 раз. Так как внешний цикл должен выполниться 5 раз, то внутренний цикл выполнится при этом 50 раз.

Примеры алгоритмов различных типовых структур: линейных, ветвящихся, циклических, с комбинацией типовых структур.