Графический способ записи алгоритма
Запись алгоритма с помощью графических объектов в виде блок-схемы (ГОСТ 19.701-90, ИСО 5807-85) применяется довольно широко для представления простых алгоритмов небольшого размера. Однако по мере роста сложности отображаемого фрагмента алгоритма (программы) его логическая структура перегружается деталями и связями («спагетти») и схема становится нечитабельной. По этой причине в настоящее время блок-схемы алгоритмов используются в основном для иллюстрации программ1.
При графическом представлении алгоритма с помощью схемы каждый пункт алгоритма отображается на схеме некоторой геометрической фигурой (блоком) и дополняется элементом словесного описания. Блоки на схемах соединяются
1 Кроме блок-схем алгоритмов, для тех же целей представления алгоритмов, программ или иных видов деятельности, в том числе и на этапе проектирования систем, могут использоваться и другие виды графической нотации. Среди них заметное место в современных методиках разработки занимает диаграмма деятельности (Activity diagram), являющаяся частью унифицированного языка моделирования UML.
14.2. Способы записи алгоритмов
линиями потоков информации. Основное направление потока информации идет сверху вниз и слева направо (стрелки могут не указываться), снизу вверх и справа налево (стрелки обязательны). Количество входящих линий для блока не ограничено. Выходящая линия должна быть одна (исключение составляет блок решения).
Основные элементы блок-схемы алгоритма приведены в табл. 14.2.
Таблица 14.2.Основные элементы схемы алгоритма (по ГОСТ 19.701-90)
Символическое обозначение
Наименование
Описание
Процесс
Блок функции обработки данных любого вида: выполнение определенной операции или группы операций, приводящее к изменению значения, формы, размещения информации или к определению направления дальнейшего движения
Решение
Блок решения или функции переключательного типа. Внутри блока записывается условие. Блок имеет один вход и два альтернативных выхода: «да» — условие выполнено, «нет» — условие не выполнено
Данные
Блок отображает данные, носитель данных не определен
Терминатор
Блок отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы)
о
Соединитель
Символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения ее в другом месте. Соответствующие символы-соединители должны быть одинаковыми
Предопределенный процесс
Блок для отображения подпрограммы или модуля
Подготовка
Блок отражает модификацию команды или группы команд с целью воздействия на некоторую последующую функцию (установка переключателя, модификация индексного регистра или инициализация программы)
Комментарий
Символическое обозначение используется для добавления комментариев. Пунктирные линии в символе комментария связаны с соответствующим блоком. Текст комментариев должен быть помещен около скобки
Линия
Символ отображает поток данных или управление
10
Граница цикла
Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т. д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие