Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11-АЛГ.doc
Скачиваний:
70
Добавлен:
09.02.2016
Размер:
816.64 Кб
Скачать

Типы алгоритмов и формы их представления

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

Линейный тип алгоритма. Алгоритм, в котором команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий, является алгоритмом линейного типа. Таким будет, например, алгоритм вычислений по самым простейшим, безальтернативным формулам, не имеющим ограничений на значения входящих в них переменных.

Задача. Вычислить площадь круга.

Дано: R, радиус круга.

Результат: S, площадь круга.

Метод решения: S = 3,14R2.

Покажем, что алгоритм решения такой задачи — по типу линейный и допускает любую из трех форм представления.

Табличная форма представления алгоритмов применяется только для линейных вычислительных алгоритмов. Ее пример — Таблица 1.

Таблица 1

R, см

3,14R, см

3,14RR, см2

1

3,14

3,14

2

6,28

12,56

Докажем, что данная таблица представляет алгоритм. Для этого убедимся, что система последовательных действий, задаваемых этой таблицей, удовлетворяет пяти требованиям, предъявляемым к алгоритмам. Действительно, команды в таком представлении алгоритма — названия столбцов. Процесс решения разбит на отдельные шаги, что заметно по названию столбцов, задающих дискретную структуру этого алгоритма. Он удовлетворяет требованию понятности: мы, как предполагаемые его исполнители, прочли указанные действия и поняли их. Смысл всех действий однозначен, переход к выполнению каждого следующего действия детерминирован (определен) последовательно идущими столбцами. Число столбцов конечно, значит, результат мы получим за конечное число шагов. Выполнено также требование массовости. Таблица допускает расчет при различных значениях исходных данных, если фиксировать результат вычислений для каждого варианта в различных ее строках.

Словесная форма представления (для всех типов алгоритмов):

Начало

Запросить значение переменной R

S:=3.14*R*R

Вывести значение переменной S

Конец

Пояснение к алгоритму

Для решения многих задач алгоритм должен получать исходные данные и обязательно выдавать выходные данные — результат решения задачи. Другими словами алгоритм должен общаться с «внешним миром». Для получения данных из внешнего устройства существует специальная команда — команда ввода. Если под внешним устройством понимается клавиатура, то дойдя до этого места исполнитель будет ожидать ввода данных. Данные записываются в переменные. Под переменной можно понимать определенную ячейку в памяти ЭВМ. Любая переменная в алгоритме имеет имя. В нашем алгоритме есть одна команда ввода:

Запросить значение переменной R

Для вычисления значения некоторого выражения используется команда присваивания:

<имя переменной> := <выражение>

Принцип действия команды присваивания: переменной, имя которой стоит слева от знака присваивания «:=», присваивается значение выражения, стоящего справа от знака присваивания. При этом «старое» значение переменной стирается.

Команда вывода позволяет вывести данные на внешнее устройство — файл на диске, дисплей, принтер. В данном алгоритме присутствует одна команда вывода:

Вывести значение переменной S

Графическая форма представления (применима для алгоритмов всех типов) основана на замене типичных алгоритмических команд определенными геометрическими фигурами — блоками.

Таблица 2. Основные элементы блок-схемы

БЛОК

НАЗНАЧЕНИЕ

Начало / Конец

Действие

Этот блок содержит команду присваивания, например:

Ввод-Вывод

Блок ввода изображается в виде параллелограмма, в котором находится знак вопроса и имя переменной, значение которой надо получить.

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

Примеры использования

При выполнении следующей команды исполнитель алгоритма запросит значение переменной Х.

Если значение переменной sumбыло равно 5, то в результате выполнения команды:

будет выведено: Сумма двух чисел равна 5

Алгоритм решения нашей задачи при графической форме представления приведен на Рис. 1.

Разветвляющийся тип алгоритма. В том случае, когда условие задачи предусматривает в ходе ее решения возможность выбора в зависимости от выполнения некоторых условий, алгоритм решения оказывается разветвляющимся (ветвящимся). Он допускает две формы представления: словесную и графическую.

Циклический тип алгоритма. Алгоритм, составленный с использованием многократных повторений одних и тех же действий (циклов), называется циклическим. Такой алгоритм реализует решение очень многих задач. Форма представления для такого алгоритма может быть выбрана как словесная, так и графическая.

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

Рис. 1

Итак, метод алгоритмизации широко применяется, так как имеет отношение как к человеку, так и к роботу, автомату, в частности к компьютеру. Этот метод служит основой для автоматизации деятельности человека-исполнителя. Кроме того, алгоритмизация — общий метод кибернетики, которая рассматривает процессы управления в различных системах как реализацию определенных алгоритмов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]