Русская Википедия:Блок-схема

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Значения

Пример блок-схемы расчета факториала с использованием цикла
Пример блок-схемы расчета факториала с использованием цикла

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

Основные элементы схем алгоритма

При начертании элементов рекомендуется придерживаться строгих размеров, определяемых двумя значениями Шаблон:Mvar и Шаблон:Mvar. Значение Шаблон:Mvar выбирается из ряда 15, 20, 25.. мм, Шаблон:Mvar рассчитывается из соотношения Шаблон:Math. Определение размеров несёт рекомендательный характер, однако, при соблюдении выполнения размеров блок-схемы имеют более аккуратный вид.

Действие

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

Файл:Элементы - Процесс.svg

Данные (ввод-вывод)

Символ отображает данные, носитель данных не определён.

Файл:Элементы - Данные.svg

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

Предопределённый процесс (функция)

Символ отображает предопределённый процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле). Например, в программировании − вызов процедуры или функции.

Файл:Элементы - Подпрограмма.svg

Вопрос (условие или решение)

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

Файл:Элементы - Условие.svg

Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определённых внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трёх, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае — сравнение (три выхода: >, <, =); в программировании — условные операторы if (два выхода: true, false) и case (множество выходов).

Ограничитель

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

Файл:Элементы - Терминатор.svg

На практике имеют смысл следующие описания ограничителей: начало/конец, запуск/останов, перезапуск (подразумевает перезапуск данной блок-схемы), ошибка (подразумевает завершение алгоритма с ошибкой), исключение (подразумевает исполнение программного исключения)

Проверка введенных данных с возможной ошибкой
Проверка введенных данных с возможной ошибкой

Цикл

Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части символа имеют один и тот же идентификатор. Условия для инициализации, приращения, завершения и т. д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие.

Файл:Элементы - Цикл.svg

Пример блок-схемы расчёта факториала с использованием цикла

Пример блок-схемы расчета факториала с использованием цикла Арсений Мажарцев.
Пример блок-схемы расчета факториала с использованием цикла Арсений Мажарцев.

Пример вложенных циклов

Пример вложенных циклов в блок-схемах
Пример вложенных циклов в блок-схемах

Соединитель

Символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения её в другом месте. Соответствующие символы-соединители должны содержать одно и то же уникальное обозначение.

Файл:Элементы - Соединитель.svg

Разделение алгоритма на две части с использованием соединителей

Файл:Пример - Применение соединителей.svg

Комментарий

Символ используют для добавления описательных комментариев или пояснительных записей в целях объяснения или примечаний. Пунктирные линии в символе комментария связаны с соответствующим символом или могут обводить группу символов. Текст комментариев или примечаний должен быть помещён около ограничивающей фигуры.

Файл:Элементы - Комментарий.svg

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

Файл:Пример - Входные переменные.svg

Параллельные действия

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

Файл:Пример - Параллельные действия.svg

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

Описание других элементов схем можно найти в соответствующих ГОСТ[1]. Среди элементов существуют:

  • Запоминаемые данные
  • Документ
  • Ручной ввод
  • Карта
  • Дисплей
  • Передача управления
  • Альтернативная связь между двумя или более символами
  • и др.

Представление алгоритмов в виде графов

Шаблон:Main Порядок выполнения действий задаётся путём соединения вершин дугами, что позволяет рассматривать блок-схемы не только как наглядную интерпретацию алгоритма, удобную для восприятия человеком, но и как ориентированный граф (т. н. граф-схема алгоритма, ГСА). Подобное представление алгоритмов используется при построении систем логического управления, реализующих заданные управляющие алгоритмы, в задачах распараллеливания вычислений и так далее.

Критика

Распространённой и ошибочной практикой является попытка использования блок-схем для иллюстрации алгоритма на низком уровне (на уровне кода) — то есть попытка вписывать в блоки схемы фрагменты кода на каком-либо искусственном языке. Такой подход применим только к программам, организованным согласно структурному подходу, и не может отразить, к примеру, алгоритм, который реализуется во взаимодействии абстракций при объектно-ориентированном подходе. Для целей описания алгоритмов, взаимодействия частей системы и иллюстрации многих других сопутствующих вещей существует нотация UML Шаблон:Нет АИ.

Примечания

Шаблон:Примечания

Шаблон:Rq