Способы представления алгоритмов
Средства, используемые для записи алгоритмов, в значительной степени определяются тем, для какого исполнителя предназначается алгоритм. Основными способами записи алгоритмов являются:
§ словесный,
§ графический,
§ формализованный.
Словесная форма обычно используется для записи алгоритмов, ориентированных на исполнителя — человека. Команды алгоритмов нумеруют, чтобы иметь возможность на них сослаться. Примером словесной записи алгоритма является алгоритм нахождения наибольшего общего делителя двух чисел (НОД) — классический алгоритм Евклида.
1. Если числа не равны, то перейти к пункту 2, иначе взять первое число в качестве ответа и закончить исполнение алгоритма.
2. Определить большее из двух чисел.
3. Заменить большее число на разность большего и меньшего чисел.
4. Перейти к пункту 1.
Команды такого алгоритма выполняются в естественной последовательности, если в самой команде нет указания на иной порядок. Форма записи команд при словесной записи алгоритма не формализуется. В командах, кроме слов, могут использоваться символы и формулы.
Графическое описание алгоритмов производится с помощью блок-схем. Блок-схемы представляют алгоритм в наглядной графической форме. Команды алгоритма помещаются внутрь блоков, соединенных стрелками, показывающими очередность выполнения команд алгоритма. Для записи внутри блоков используется естественный язык с элементами математической символики. Приняты определенные графические стандарты изображения блоков.
В таблице 1 приведены основные условные графические обозначения, применяемые при составлении схем алгоритмов (ГОСТ 19.003–80).
Таблица 1 | ||
Наименование | Обозначение | Функция |
Блок выполнения действия (процесс) | ![]() | Выполнение операции или группы операций, изменяющих значение, форму представления или расположение данных |
Логический блок (решение) | ![]() | Выбор направления выполнения алгоритма в зависимости от некоторых условий |
Модификация (заголовок цикла) | ![]() | Выполнение действий, изменяющих команды или группы команд |
Предопреде-ленный процесс | ![]() | Обращение к вспомогательному алгоритму |
Блок ввода-вывода | ![]() | Ввод или вывод данных |
Пуск-останов | ![]() | Начало или конец алгоритма |
Линия потока | ![]() ![]() | Указание на последовательность связей между блоками |
Комментарий | - - - - - - - - [ | Пояснение элемента схемы |
Соединитель | ![]() | Указатель связи между прерванными линиями потока в пределах одной страницы |
Межстраничный соединитель | ![]() | Указание связи между частями схемы, расположенными на разных страницах |
![]() |
Блок-схема алгоритма нахождения наибольшего общего делителя двух чисел имеет следующий вид (рис. 8).
Блок-схемы алгоритмов обладают большей наглядностью, чем словесная запись алгоритма.
Формализованное описание алгоритма предназначено для исполнения на ЭВМ. Алгоритм записывается в виде программы на некотором языке программирования. В настоящее время существует несколько сотен языков программирования. Они рассчитаны на разные классы решаемых с помощью ЭВМ задач.