Решения блок-схем алгоритмов
Если дать определение схеме, можно отметить основной момент: в первую очередь подразумевается абстракция какого-нибудь процесса (системы), при которой наиболее важные части отображаются наглядно (визуально). Схемы использовались на протяжении всей истории человечества: это и чертежи пирамид, и карты сухопутных и морских путей, и принципиальные электрические схемы.
Те же мореплаватели, создавая карты, делали это в соответствии с единой системой обозначений — это позволяло обмениваться информацией друг с другом. То же самое справедливо и для визуального отображения схем алгоритмов — существуют правила, единые обозначения и стандарты, регламентирующие их применение. В России это ГОСТ 19.701-90 «Схемы алгоритмов программ, данных и систем», который близок к международному стандарту ISO 5807:1985.
Главные элементы блок-схем алгоритмов
Прежде чем продолжить, стоит дать определение блок-схемы в соответствии со стандартом — речь идёт о совокупности символов, которые отвечают этапам работы алгоритма, причём эти символы имеют соединяющие линии: — пунктирную — для соединения с комментарием; — сплошную — отображает зависимости по управлению, допускается наличие на ней стрелки. В соответствии со стандартом составитель может не указывать стрелку, если дуга направляется сверху вниз или слева направо.
Также существуют и дополнительные виды линий, которые применяются, когда надо дать описание блок-схемам параллельных алгоритмов, однако в этой статье мы их рассматривать не будем, как и ряд других дополнительных спецсимволов.
В таблице ниже дан перечень основных символов, используемых при описании алгоритмов:
Задача и блок-схема алгоритма
На картинке ниже дан алгоритм в виде схемы. В нем мы видим оператор присваивания
Схема этого алгоритма и решение задачи будут выглядеть следующим образом:
Смотрим, как следует решать подобное задание: 1. Блок ввода данных определяет исходные значения Х и Y (в соответствии с условием это 7 и 12). 2. В первом блоке значения Х и Y сравниваются. Так как условие не является верным (7 < 12), осуществляется переход по линии с пометкой «нет». 3. Второй блок служит для второго сравнения — оно верное, в результате чего следующее действие — это переход по линии с отметкой «да». 4. Следующий этап является заключительным, то есть происходит вычисление результата работы алгоритма. По итогу всех вышеописанных действий мы получаем окончательный ответ, не требующий дополнительных вычислений: X := 0, Y := 1.
Решение алгоритма сортировки пузырьком
В этом примере давайте попробуем дать описание решению алгоритма сортировки по методу пузырьком (метод сортировки вставками). Здесь применяются 2 цикла. Во вложенном цикле осуществляется попарное сравнение элементов. Если нарушается порядок, происходит перестановка. По итогу выполнения одной итерации во внутреннем цикле, наибольший элемент будет смещён в самый конец массива. Внешний цикл будет выполняться, пока полностью весь массив не отсортируется.
На схеме отображено применение символов конца и начала цикла. Здесь условие внешнего цикла (А) проверяется в конце (с постусловием), а функционирует он до тех пор, пока переменная hasSwapped является true. Во внутреннем цикле используется предусловие для перебора пар элементов, которые сравниваются. Если они располагаются в неправильном порядке, они переставляются путём вызова внешней процедуры (swap). Для понимания назначения внешней процедуры, как и порядка следования аргументов этой процедуры, нужно оставлять комментарии. Если функция возвращает значение, то комментарий можно написать к символу-терминатору конца.
В этой статье мы постарались дать ответ, зачем нужны блок-схемы, каковы их основные элементы, как с их помощью решить алгоритмическую задачу. При подготовке материала использовались следующие источники:
• https://uchitel.pro/алгоритм-свойства-алгоритмов/;
• https://pro-prof.com/archives/1462.