Основные типы алгоритмов типы алгоритмов
В зависимости от особенностей своего построения алгоритмы делятся на три основные группы:
линейные;
разветвляющиеся;
циклические.
Разнообразие алгоритмов определятся тем, что любой алгоритм распадается на части, фрагменты и каждый фрагмент представляет собой алгоритм одного из трех указанных видов. Поэтому важно знать структуру каждого из алгоритмов и принципы их составления.
Линейные алгоритмы
Линейным называется алгоритм, в котором все этапы решения задачи выполняются строго последовательно, т.е. линейный алгоритм выполняется в естественном порядке его написания и не содержит разветвлений и повторений.
Структура такого алгоритма показана на рисунке.
Рассмотрим составление схем линейных алгоритмов на конкретных примерах.
Пример.
Даны переменные А и В. Требуется обменять их значения, т.е. переменная А должна получить значение В, а В — значение А.
Решение:
Исходные данные: А, В. Вспомогательная переменная DOP. Результат: А, В.
Метод решения задачи: в ЭВМ каждая величина хранится в отдельном участке памяти (переменной). Поэтому задача заключается в том, чтобы поменять местами содержимое двух ячеек.
Давайте решим следующую задачу: имеется два стакана: в одном из них вода, в другом молоко. Требуется поменять содержимое стаканов. Житейский опыт подсказывает, что нам для решения данной проблемы потребуется еще один стакан. В него мы перельем воду из первого, затем в первый стакан (из второго) нальем молоко, а из вспомогательного стакана во второй нальем воду.
Аналогично решается и задача обмена значениями двух переменных. Введем в рассмотрение еще одну величину, например DOP (вспомогательный стакан). Решение задачи распадается на три этапа. Соответствующие им блоки и порядок их выполнения изображены на схеме алгоритма.
Мы получили запись алгоритма решения данной задачи с помощью блок-схемы. Рассмотрим теперь запись этого алгоритма с помощью псевдокода.
Напомню, что псевдокоды — это интерпретация шагов алгоритма па обычном языке, которая описывает действие команды.
При записи алгоритма с использованием псевдокодов знаки арифметических операций будем обозначать так: +, -, /, *.
Знак := (двоеточие и равно) означает операцию присвоения выбранной переменной некоторого значения.
К инструкциям линейных алгоритмов относятся инструкции ввода-вывода информации и инструкция присваивания. На языке псевдокода эти инструкции обозначаются следующим образом.
Инструкция ввода — Ввод (х, у, z)*.
*Здесь в скобках перечислены имена элементов, которые надо ввести.
Инструкция вывода — Вывод (х, у).
Инструкция присваивания — х := 32*.
*Читается: «х присвоить значение 32».
Алгоритм Перемещение; {заголовок алгоритма)
Переменные А, В, Dop: целые числа; {описательный блок}
Начало
Ввод (А,В);
Dop:=A;
А:=В;
B:=Dop;
Вывод(А,В);
Конец.
Проверим составленный алгоритм. Для этого нужно выполнить действия, предусмотренные в алгоритме в том порядке, в каком они записаны. Для того чтобы было легче контролировать значения переменных, исполняя алгоритм, будем составлять трассировочную (тестирующую) таблицу; такую таблицу также называют таблицей значений.
Пусть переменным А и В задаются значения 3 и 6 соответственно. В итоге переменная А должна содержать 6, а В — 3. Проверим работу нашего алгоритма:
-
№
А
В
DOP
1
3
6
0
2
3
6
3
3
6
6
3
4
6
3
3
Результат работы алгоритма совпадает с ожидаемым. Значит, алгоритм составлен верно.
