Виды алгоритмов

Для записи алгоритмов, наряду с естественным или математическим языком, удобно использовать язык блок-схем. Блок-схемой называется графическое изображение алгоритма, в котором каждый этап процесса обработки данных изображён в виде геометрической фигуры установленного вида, называемой символом.Символы соединяются линиями, указывающими направление потоков информации. Внутри каждого символа помещается описание соответствующего этапа обработки данных. Если описание громоздко, оно записывается отдельно в виде комментария. Основные символы приведены в таблице.

ПРОЦЕСС – выполнение операции или группы операций, в результате которых изменяются параметры входящей информации
УСЛОВИЕ – обозначает выбор направления работы алгоритма в зависимости от выполнения записанных внутри условий
ПРЕДОПРЕДЕЛЁННЫЙ ПРОЦЕСС – обозначает использование ранее созданных и отдельно описанных алгоритмов и программ
ВВОД – ВЫВОД ДАННЫХ – обозначает преобразование данных в форму, пригодную для обработки или регистрации
ДИСПЛЕЙ – обозначает ввод-вывод данных для устройства, позволяющего вносить изменения в процесс их обработки
ДОКУМЕНТ – обозначает ввод-вывод данных с использованием бумажного носителя  
СОЕДИНИТЕЛЬ – показывает связь между прерванными линиями потока информации
ПУСК – ОСТАНОВ обозначает начало, конец или прерывание процесса обработки данных  

 

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

 

Все алгоритмы по своей структуре делятся на три группы:

- линейные

- разветвляющиеся

- циклические.

Линейным называется алгоритм, не содержащий условий. Этот алгоритм безусловно определяет процесс преобразования данных. Примером такого алгоритма является поэтапное вычисление математической формулы. Каждая элементарная операция выполняется в установленном правилами вычислений порядке без анализа полученного ранее результата. Блок-схема линейного алгоритма представляет собой последовательную цепочку символов «процесс», имеющих вид прямоугольника, дополненную символами «ввод-вывод»и«начало-конец».

 

 
 

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

 

Разветвляющийся алгоритм содержит, по крайней мере, одно условие. Для реализации разветвляющегося алгоритма используется типовая структура РАЗВЕТВЛЕНИЕ. Основой разветвляющегося алгоритма является логический элемент условия, изображаемый на схеме символом РОМБ. В логическом элементе производится проверка условия, которая даёт результат ДА или НЕТ. В зависимости от этого поток информации направляется по одному из двух выходных каналов логического элемента. В таком алгоритме может быть два варианта:

1. если условие выполняется, то информационный поток направляется в блок вычислительного процесса, для которого проводилась проверка условия; если условие не выполняется – информационный поток направляется к следующим элементам блок-схемы. Таким образом, логическая схема может быть записана как ЕСЛИ (условие) -ТО (формула).

2. имеется ДВЕ ФОРМУЛЫ вычислений, и алгоритм работает по следующему логическому принципу: ЕСЛИ (условие) - ТО (формула 1), ИНАЧЕ (формула 2).

Если нужно проверить несколько условий, то алгоритм принимает форму «дерева» с разветвлениями в виде «веток». Количество логических элементов всегда на единицу меньше количества условий, т.к. каждый элемент имеет один вход и два выхода. Участок алгоритма до разветвления называется стволом, условие – точкой разветвления, альтернативные направления процесса вычисления после точки разветвления - ветвями.

 

Рис.9. Блок-схемы разветвляющихся

алгоритмов

Циклическимназывается такой алгоритм, часть действий в котором повторяется неоднократно. Такие повторяющиеся действия и носят название «цикл». Циклические алгоритмы содержат условия работы цикла, поэтому их можно считать разновидностью разветвляющихся алгоритмов, у которой одной из ветвей является часть ствола, которая неоднократно повторяется. Эти повторяющиеся действия и составляют цикл.

 

Циклические алгоритмы делятся на два вида:

- с известным числом повторений (циклов)

- итерационные алгоритмы, в которых число циклов заранее неизвестно и окончание работы цикла определяется каким-либо условием (преимущественно заданной точностью вычислений).

Рассмотрим оба вида алгоритмов.