Вычислительная схема алгоритма — это отображение последовательности шагов алгоритма в виде блок-схемы.
Правила оформления блок-схем
Под вычислительной схемой алгоритма понимается представление его структурной организации в графическом формате, где все действия или команды отображаются как отдельные блоки. Каждая алгоритмическая операция, подлежащая выполнению, изображается блоками, имеющими различную геометрическую форму. Взаимные связи блоков изображаются при помощи связующих линий, обозначающих направление передачи управления. Существует единый государственный стандарт, определяющий правила оформления блок-схем. Базовыми из них являются следующие правила:
- Все блок-схемы должны в обязательном порядке включать в свой состав блоки, имеющие названия «начало» и «конец».
- Начальный блок обязан иметь соединение с конечным блоком комплексом линий по любой из ветвей, изображённых на блок-схеме.
- Блок-схема никогда не должна содержать блоков, кроме блока «конец», которые не имеют соединений различными линиями с остальными блоками с двух сторон, а также блоков, которые передают управление в неопределённом направлении.
- Каждый блок имеет определённый номер, при этом нумерация может осуществляться только сверху вниз и слева направо. Цифры, которые обозначают нумерацию блока, нужно располагать вверху слева.
- Каждый блок соединяется с другими блоками при помощи поточных линий, определяющих последовательность выполнения команд внутри блоков. Поточные линии всегда имеют направление, параллельное краю листа. Если линии направлены справа налево, или снизу вверх, то требуется в любом случае устанавливать стрелки, обозначающие направление, в конце линий. При других обстоятельствах указывать стрелки не обязательно.
- Каждая линия может быть или входящей в блок, или выходящей из блока. Все поточные линии считаются входящими в одни из блоков, и выходящими из других блоков.
- Блок «начало» считается начальным в блок-схеме и по этой причине имеет только выходящую линию потока.
- Блок «конец» является последним и поэтому к нему приходит лишь входящая поточная линия.
- Для упрощения чтения блок-схемы, нужно подводить поточную линию к блоку, обозначающему команду, сверху, а отводить вниз.
- Для обеспечения удобного чтения блок-схемы не рекомендуется использовать сложные пересечения линий, а просто выполнять разрывы линий. В месте разрыва следует указать соединяющий элемент и в нём обозначить номера блоков, соединяемых линией. В блок-схеме не должно присутствовать разрывов линий, не имеющих соединителя.
- Чтобы сделать блоки более компактными, следует всю информацию, относящуюся к блоку, размещать в комментариях.
Вычислительная схема алгоритма
Тип алгоритма определяется характером решаемой при его посредстве задачи. Известны следующие алгоритмические типы:
- Линейный тип алгоритмов.
- Ветвящийся тип алгоритмов.
- Циклический тип алгоритмов.
Алгоритмы с линейной структурой состоят из комплекта поочерёдных операций, не зависящего от исходных данных. Каждая команда выполняется строго по одному разу и всегда только после команды, стоящей перед ней. Например, вычисление результата по несложному выражению, не имеющему иной альтернативной возможности, а также, не имеющему ограничений по применяемым переменным. Практически во всех случаях линейный алгоритм является компонентом алгоритма с более сложной структурной организацией. На рисунке один изображён пример вычислительной схемы линейного алгоритма:
Рисунок 1. Вычислительная схема линейного алгоритма. Автор24 — интернет-биржа студенческих работ
Алгоритмы, обладающие ветвлениями в своей структуре, всегда выполняют в одном из блоков проверку заданного условия в логической или математической форме, по итогам которой определяется выбор одной из допустимых ветвей дальнейших действий. В вычислительной схеме алгоритма ветвление обозначается специальным блоком «решение». У этого блока имеется пара выходных линий. Какая из линий будет выбрана, назначается после проверки заданных в блоке «решение» условий. Известны следующие типы алгоритмов, в которых есть ветвление:
«Обход». Осуществляется, когда одна из ветвей не содержит вообще никакого проверочного условия. То есть имеется ветвь алгоритма, которая просто выполняет обход всех процессов параллельного направления. На рисунке два изображён пример обхода:
Рисунок 2. «Обход». Автор24 — интернет-биржа студенческих работ«Разветвление». Оба направления ветвлений обладают некоторым набором действий (операций). На рисунке три изображён пример такого алгоритма:
Рисунок 3. «Разветвление». Автор24 — интернет-биржа студенческих работ«Многообразный выбор». В наличии ряд допустимых продолжений алгоритма, каждое из которых обладает своим комплектом процедур для исполнения. Выбирается та ветка, которая удовлетворяет итогам вычисления условий. На рисунке четыре изображён пример такого алгоритма:
Рисунок 4. «Многообразный выбор». Автор24 — интернет-биржа студенческих работ
Алгоритмы, имеющие в своём составе встроенные циклы, применяют тогда, когда требуется осуществить некоторое количество раз одни и те же операции. Циклом является набор операций, выполняемых многократно. Известны следующие типы циклических алгоритмов:
- С заданным изначально числом повторения процедур. Они имеют строенный счётчик.
- С неизвестным изначально числом повторения процедур. Это циклы, имеющие предварительное условие, и циклы, с проверкой условия после выполнения процедур.
Во всех циклах предусмотрена переменная, которая управляет моментом, когда нужно выйти из цикла, то есть она определяет сколько раз будет выполнен цикл. Комплект операций, который выполняется при всех входах в цикл, называется телом цикла. Он является, фактически, его исполняемой (рабочей) частью. На рисунке пять изображена вычислительная схема алгоритма, в которой имеется цикл с использованием счётчика:
Рисунок 5. Алгоритм, в котором имеется цикл с использованием счетчика. Автор24 — интернет-биржа студенческих работ
Прежде чем начать исполнение первой команды, следует определить для счётчика начальное значение. Это может быть какое-то число, которое зависит от осуществляемого алгоритма. Когда величина переменой не превышает число, которое записано в счётчике, тогда идёт выполнение команд тела цикла.