Формы представления алгоритмов
На практике наиболее распространены следующие формы представления алгоритмов:
- словесная (записи на естественном языке);
- графическая (изображения из графических символов);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
- программная (тексты на языках программирования).
Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
Алгоритм может быть следующим:
- задать два числа;
- если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;
- определить большее из чисел;
- заменить большее из чисел разностью большего и меньшего из чисел;
- повторить алгоритм с шага 2.
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи.
Словесный способ не имеет широкого распространения по следующим причинам:
- такие описания строго не формализуемы;
- страдают многословностью записей;
- допускают неоднозначность толкования отдельных предписаний.
Описание на алгоритмическом языке
Алгоритмический язык, это язык, ориентированный на ЭВМ. Все алгоритмы к задачам и примерам для исполнения ЭВМ должны быть составлены на алгоритмическом языке.
Арифметические выражения записываются по следующим правилам:
|
ТИПЫ АЛГОРИТМОВ
Известны три типа алгоритмов: линейный, ветвящийся, циклический. Тип алгоритма определяется характером решаемой в соответствии с его командами задачи. Применяют следующие формы представления алгоритмов: словесную, графическую, псевдокоды и программную, но не все эти формы
возможны для любого из алгоритмов.
Форма представления алгоритма зависит от его типа.
Линейный тип алгоритма. Алгоритм, в котором команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий, является алгоритмом линейного типа. Таким будет, например, алгоритм вычислений по самым простейшим, безальтернативным формулам, не имеющим ограничений на значения входящих в них переменных. Запишем условие одной из задач, решение которой потребует составления алгоритма линейного типа, и сделаем постановку задачи. При постановке задачи такого алгоритма необходимо указать переменные, значения которых потребуются в качестве исходных, и переменные, значения которых необходимо найти, а также формализованную связь между ними.
Ветвящийся тип алгоритма. Алгоритм, условие задачи которого предусматривает в ходе ее решения возможность выбора в зависимости от выполнения некоторых условий. Он допускает формы представления словесную и графическую.
Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Циклический тип алгоритма. Этот алгоритм используется, если требуется многократное повторение одних и тех же действий (циклов). Форма представления может быть выбрана словесная и графическая.
На практике чаще всего встречаются алгоритмы смешанного типа, у которых можно выделить участки (блоки), имеющие структуру линейного, ветвящегося или циклического типа. Алгоритм любой степени сложности можно построить с помощью блоков любого базового набора, имеющих линейную, ветвящуюся или циклическую структуру. Каждая из этих структур имеет только один вход и только один выход, что позволяет соединять между собой в процессе разработки алгоритма любое количество элементов базовых структур в любой последовательности.