Типы алгоритмов и формы их представления
Известны три типа алгоритмов – линейный, ветвящийся, циклический. Тип алгоритма определяется характером решаемой в соответствии с его командами задачи. Применяют три формы представления алгоритмов: табличную, словесную, графическую, но не все три формы возможны для любого из алгоритмов. Форма представления алгоритма зависит от его типа.
Линейный тип алгоритма
Линейный тип алгоритма это тип алгоритма, в котором команды выполняются в порядке их естественного следования друг за другом независимо от каких – либо условий, является алгоритмом линейного типа. Таким будет, например, алгоритм вычислений по самым простейшим, безальтернативным формулам, не имеющих ограничений на значения входящих в них переменных. Запишем условие одной из задач, решение которой потребует составление алгоритма линейного типа, и сделаем постановку задачи. При постановке задачи необходимо указать переменные, значения которых потребуются в качестве исходных, и переменные, значения которых необходимо найти, а так же формализованную связь между ними.
Пусть требуется решить задачу расчета площади круга. По условию задачи дано: R, радиус круга; требуется рассчитать: S, площадь круга; связь: S=3,14*R2.
Алгоритм решения такой задачи – по типу линейный допускает любую их трех форм представления.
Табличная форма представления алгоритмов применяется только для линейных вычислительных алгоритмов. Докажем, что данная таблица представляет алгоритм. Система действий, задаваемых таблицей, удовлетворяет пяти требованиям: команды в таком представлении алгоритма- названия столбцов; процесс решения разбит на отдельные шаги, что видно по названию столбцов, задающих дискретную структуру этого алгоритма; он удовлетворяет требованию понятности; смысл всех действий однозначен, переход к выполнению каждого следующего действия детерминирован последовательно идущими столбцами; число столбцов конечно, значит алгоритм конечен; массовость – таблица допускает расчет при различных значениях исходных данных, если фиксировать результат вычислений для каждого варианта в различных ее строках.
Словесная форма представления (для всех типов алгоритмов). Выберем русский язык для записи алгоритма в этой форме и запишем последовательность команд, выполнение которых позволит при заданном значении радиуса круга найти его площадь:
← Если используем команду присвоения, то словесная форма представления этого алгоритма станет более компактной.
Во всех записях алгоритма можно применять другой порядок действий: вычислить сначала значение R2, которое затем умножать на коэффициент – значения числа π.
Графическая форма представления (применима для алгоритмов всех типов) основана на замене (кодировании) типичных алгоритмических команд, определенными алгоритмическими фигурами.
Рис. 4.1. Графическая форма представления
линейного типа алгоритма
Ветвящийся тип алгоритма
Ветвящийся тип алгоритма– этоалгоритм, реализующий задачу, которая предусматривает в ходе ее решения возможность выбора в зависимости от выполнения некоторых условий. Он допускает две формы представления: словесную и графическую.
Существует широкий круг задач, при решении которых, необходимо сделать определенный выбор в зависимости от выполнения некоторых условий. Процесс решения таких задач описывается алгоритмом, тип которого определяется как ветвящийся (разветвляющийся). В разветвляющихся алгоритмах принцип линейного автоматического перехода от команды к команде, от действия к действию в порядке естественного следования не является всеобщим, так как иногда возникает необходимость произвольного перехода к предписанию, то есть нарушению линейности переходов. Ветвящиеся алгоритмы допускают два способа представления – словесные и графические.
Поясним данный тип алгоритма на описываемом примере расчета площади круга. Так, радиус круга должно быть число неотрицательное, однако, приведенный выше алгоритм этого не проверяет и на ошибочно введенное отрицательное значение радиуса расчет даст положительное значение площади, что будет являться ошибкой. Поэтому между пунктом 1 и пунктом 2 словесной формы представления вводим еще один пункт 1.1, который в зависимости от выполнения условия будет либо информировать об ошибке и возвращать к пункту 1, либо разрешать естественное следование алгоритма.
При графическом представлении алгоритма ветвления (развилка, выбор дальнейших действий) организуется с помощью логического элемента (ромб с записанным внутри условием), имеющего один вход и несколько (в простейшем случае – два) выходов. Назначение логического элемента – проверка заданного условия. В зависимости от выполнения (истинности) или не выполнения (ложности) проверяемого условия возможен выход соответственно на ветвь «Да» или «Нет».
Рис. 4.2. Графическая форма представления
ветвящегося типа алгоритма
Циклический тип алгоритма
Циклический тип алгоритма – алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов). Форма представления может быть выбрана как словесная, так и графическая.
На практике чаще всего встречаются алгоритмы смешанного типа, у которых можно выделить участки (блоки), имеющие структуру линейного, ветвящегося или циклического типа. Алгоритм любой степени сложности можно построить с помощью блоков основного базового набора, имеющих линейную, ветвящуюся или циклическую структуру. Каждая из этих структур имеет только один вход и только один выход, что позволяет соединять между собой в процессе разработки алгоритма любое количество элементов базовых структур в любой последовательности.