Судя по всему, вопрос исходит из предпосылки, что рисование блок-схем — это какое-то старое упражнение, сейчас уже не нужное. Но это не совсем так, блок-схема (flowchart) — это просто визуальное представление некоего процесса. Она отображает базовые понятия процессов и алгоритмов, такие как шаги и связи между ними. Эти понятия не могут «устареть», так же как не может устареть, например, арифметика.
Единственный элемент блок-схем, который в контексте алгоритмов действительно объявлен устаревшим, но который до сих пор появляется в некоторых учебниках — это передача управления (переход) в произвольную точку.
Вот пример блок-схемы, в которой цикл изображён условным переходом на предыдущий шаг:
Условные переходы раскритиковал Э. Дейкстра в своём эссе "Go To Statement Considered Harmful" ещё в 1968 году. Тогда было математически доказано, что для тьюринг-полноты в языке достаточно трёх управляющих элементов:
выполнение одного из двух блоков в зависимости от условия
повтор блока, если некое условие выполняется
последовательное выполнение команд внутри блока
Такой подход был назван "структурным программированием". Он позволяет производить доказательство корректности выполнения алгоритма и решить т.н. "проблему останова" (для кода с оператором go to проблема останова математически нерешаема).
С тех пор оператор go to и его аналоги практически перестали использовать везде кроме ассемблеров и ассемблероподобных эзотерических языков. В новых языках такой конструкции вообще нет.
Единственно, где такой элемент всё ещё встречается в контексте обучения программированию — это те самые блок-схемы, которые отображают не сам алгоритм, а процесс прохода по нему. Они позволяют ученику понять, как компьютер интерпретирует код, но для отображения структуры программы уже не подходят.
Зато с их помощью можно прекрасно проиллюстрировать переходы между состояниями конечного автомата, поэтому для изучения теории алгоритмов блок-схемы тоже актуальны.
Научные заметки о жизни:
zen.yandex.ru/id/5c43498395753900ac66852d · 13 янв 2022
Любые схемы очень помогают представить суть дела.
Электрические, гидравлические, алгоритмические.
С одним условием: они должны оставаться обозримыми.
Поэтому как раз при обучении и при решении простеньких задач блок-схемы очень полезны. Но все попытки сделать на их основе инструмент для промышленного производства программ кончились неудачей.
Не всегда при обучении рисуют. И рисуют не только при обучении. Это очень полезный инструмент проектирования, наряду с UML, логическими схемами и другими видами диаграмм.
Head of the Testing Expertise.
Индивидуальное обучение программированию и менторинг... · 9 нояб 2021
Конечно рисуют. Если их не давать, то обучение программированию становится бессмысленным и появляется новая плеяда джунов, не понимающая разницу между программированием и кодированием.
Что за программирование без блок-схем. При обучении без них никак. Опытный программист простые алгоритмы и в уме разложит, а начинающий должен научиться на простых примерах составлять блок-схемы, чтобы потом использовать в сложных случаях.