Вопросы о генераторе блок-схем
Сначала — как читать схему и почему она выглядит не так, как код. Если нужно другое, внизу есть ответы про сохранение и про отказы разбора.
Генератор блок-схем онлайн превращает исходный код в структурную схему выполнения по ГОСТ 19.701-90 (ISO 5807). Разбираются JavaScript, TypeScript, Python и C: функции, ветвления, циклы, многовариантный switch, вызовы, ввод и вывод.
Схема показывает не значение переменных, а ход программы: какой блок идёт за каким, где проверка ветки, где цикл возвращается назад, где выполнение выходит раньше времени. Что именно разбирает каждый язык — написано в сноске под таблом.
Вставьте код в редактор слева — или откройте готовый пример из раздела «Примеры», — и нажмите «Построить». Схема появится справа, а её можно будет выгрузить в PDF, PNG или SVG.
- Язык узнаётся по самому тексту: пока язык не выбран руками, его определяет разбор.
- Если узнался не тот язык, выберите нужный в подвале редактора — точка у названия погаснет, и с этого момента разбор пойдёт ровно тем, что вы выбрали.
- Схема строится по кнопке «Построить» или по Ctrl + Enter: набор текста её не перестраивает.
Сейчас генератор блок-схем работает с четырьмя языками: JavaScript, TypeScript, Python и C. Код на TypeScript принимается и как JavaScript — это надмножество, лишнего языка в интерфейсе не появляется.
Для каждого языка написано, что разбирается, а что сознательно не рисуется: например, в JavaScript и TypeScript классы пропускаются, а в Python тела функций разворачиваются в отдельные схемы.
- Поток идёт сверху вниз (п. 4.2.1). В сторону ветви уходят только решения.
- Прямоугольник — процесс, обычный оператор (п. 3.2.1.1).
- Ромб — решение; выходы подписаны «Да» и «Нет» (п. 3.2.2.4, 4.3.1.2).
- Два шестиугольника — границы цикла: в верхнем условие, в нижнем шаг перехода (п. 3.2.2.6).
- Параллелограмм — данные: ввод и вывод (п. 3.1.1.1).
- Прямоугольник с двумя чертами — вызов функции или метода.
- Круг с номером — досрочный выход из функции (п. 3.4.1).
Блок под курсором подсвечивает свою строку в коде, щелчок закрепляет подсветку, Esc отпускает. Схема не делится на страницы: это одна сплошная полоса, и в PDF она режется на листы A4.
Схема показывает структуру, а не текст, поэтому она честно меняет вид:
- До четырёх соседних простых операторов склеиваются в один блок.
- Вызов функции — один символ с подписью; сама функция рисуется отдельной схемой, поддерево внутрь вызова не разворачивается.
- Каждая функция получает свою схему — они идут подряд.
- Комментарии и директивы
#includeна схему не попадают. - В JavaScript и TypeScript классы пропускаются: их тела в схему не разворачиваются.
Полный список — в сноске под таблом: там сказано и что разбирается, и что сознательно не рисуется.
Отказ приходит сразу и по-русски — это не ошибка сети.
- «Не похоже на исходный код» — в тексте нет ни одного признака языка.
- «Код похож на C, а выбран Python» — язык узнался увереннее выбранного. Пока язык не выбран руками, он определяется по тексту, и такая защита от тихой ошибки: схема из TypeScript, выданного за JavaScript, не рисуется никогда.
- «Код длиннее 30 000 символов» — на таком объёме блоки сливаются даже на листе A2.
Схема строится не по набору текста, а по кнопке «Построить» или по Ctrl + Enter: на каждый символ её ждать бессмысленно, а недописанный код разбирается в мусор. Исключение — код примера: его человек не писал, поэтому он строится сам.
- PDF — один лист A4 занимает одну страницу файла. Если схема не влезает в A4, раскладка берёт следующий формат (A3, затем A2), и печатать её на другом нельзя: блоки уедут за поля.
- PNG и SVG — сплошные, одним файлом, во всю длину полосы.
- Шрифты вшиты в файл: «Начало» не превращается в мусор. На экране и в файле одна и та же схема — чёрная обводка на белой бумаге.
- Ctrl + Enter
- построить схему
- Ctrl + колесо
- масштаб кода и схемы
- Esc
- отпустить закреплённый блок
- ← →
- сдвинуть шторку между кодом и схемой
- двойной щелчок
- вернуть ширину шторки
- Tab
- два пробела в редакторе
Все формы символов — в каталоге фигур ГОСТ. О самом сервисе — на странице «О сервисе».