Як це працює

rombik розбирає твій код справжнім парсером (Python, C, C++, C#, Java і Pascal), будує логічне дерево алгоритму й розкладає його у блок-схему за ДСТУ 19.701-90 — за лічені секунди, прямо в браузері.

Фігури за стандартом

Термінатор

Початок / Кінець

Процес

Дія, обчислення, присвоєння

Розв’язок

Умова (if / while)

Ввід-вивід

input / print, cin / cout

Межа циклу

Цикл for з лічильником

Підпрограма

Виклик власної функції

Що вже підтримується

Кожна функція стає окремою схемою; її параметри малюються вхідним паралелограмом, а return — паралелограмом виходу.

Python повна підтримка

  • if / elif / else, match / case
  • for … in range, while, for/else, while/else
  • while True … break (післяумова), нескінченний цикл
  • break / continue / return / raise
  • try / except / finally, with
  • list / set / dict-comprehension → цикл
  • input / print → «Ввід …» / «Вивід …»
  • методи й вкладені класи («Клас.метод»), декоратори
  • лямбди (name = lambda …) → окрема схема, тернарний a if c else b → галуження

C / C++ повна підтримка

  • if / else, switch (усі case + default, fallthrough → «||»)
  • for (класичний і range-based), while, do / while
  • break / continue / return, рекурсія
  • cin / cout і printf / scanf → ввід/вивід
  • try / catch
  • методи класів («Клас::метод»), оператори, namespace, шаблони
  • лямбди (auto f = [](){…}) → окрема схема, тернарний ?: → галуження
  • C — підмножина C++ (та сама обробка)

C# повна підтримка

  • if / else, switch (case + default, fallthrough, switch-expression)
  • for, foreach (foreach (var x in c)), while, do / while
  • break / continue / return / throw, рекурсія
  • Console.ReadLine() → «Ввід …», Console.Write/WriteLine → «Вивід …»
  • методи, конструктори, властивості, статичні методи («Клас.метод»)
  • класи, структури, інтерфейси, enum → схеми по методах
  • виклик власного методу → підпрограма
  • try / catch — малюється тіло try
  • лямбди (x => …) → окрема схема, тернарний ?: → галуження

Java повна підтримка

  • if / else, switch (case + default, fallthrough → «||», arrow і colon)
  • for, for-each (for (T x : c)), while, do / while
  • break / continue / return / throw, рекурсія
  • Scanner.nextX() → «Ввід …», System.out.print* → «Вивід …»
  • методи, конструктори, статичні методи («Клас.метод»)
  • класи, інтерфейси, enum → схеми по методах
  • виклик власного методу → підпрограма, рядки "…" → «…»
  • try / catch — малюється тіло try
  • лямбди ((x) -> …) → окрема схема, forEach → цикл, тернарний ?: → галуження

Pascal повна підтримка

  • procedure / function → окремі схеми
  • присвоєння «:=» → дія
  • writeln / write → Вивід, readln / read → Ввід
  • if .. then .. else
  • for .. to / downto .. do
  • while .. do, repeat .. until
  • case .. of

Межі: чого rombik не малює

Блок-схема за ДСТУ описує структурний потік керування, а не кожну дрібницю мови. Тому деякі конструкції свідомо не розкладаються детально — однаково для всіх мов:

  • Обробка винятків (try/catch/finally, except) — у ДСТУ немає стандартної фігури для винятків; малюється лише основне тіло try.
  • Потоки та інлайн-анонімні лямбди (stream, map(lambda…), лямбда у виклику std::sort(…)) — лишаються текстовою дією. А лямбда, присвоєна імені (f = lambda …), навпаки, стає окремою схемою.
  • Мітковані break/continue (break label) — переривають найближчий цикл; мітка ігнорується.
  • Анонімні / локальні класи, текстові блоки — відображаються як текстова дія, не окрема схема.

Це межі жанру «довільний код → стандартна блок-схема», а не помилки. Якщо тобі чогось бракує — натисни «Помилка або ідея» нижче, і я гляну.

Інтерактивний візуальний редактор

Окрім автоматичної генерації, у rombik є повноцінний візуальний редактор (кнопка «✎ Редагувати» на картці схеми). Ви можете:

  • Перетягувати блоки (примагнічуються до сітки), рухати цілу виділену групу разом
  • Змінювати маршрут стрілок або малювати власні з'єднання; правити текст подвійним кліком
  • Ділити на схеми вручну: виділяй блоки рамкою-ласо (Shift+тяг фону) чи Shift-кліком, тоді «⊞ Окрема схема» виносить їх в окремий рисунок (рамкою)
  • «⊟ Об'єднати» — зливає кілька схем назад в одну
  • Стрілки між схемами автоматично стають парами конекторів (кружечки А, Б, В…)
  • «Редагувати всі» — усі функції коду на одному полотні, щоб ділити блоки між ними
  • Undo / redo, безмежне полотно з пан/зумом

Rubber Duck Debugging 🦆

Застряг з алгоритмом або втомився від програмування? У правому нижньому куті редактора на тебе завжди чекає Гумова Качечка. Вона створена спеціально для того, щоб підтримати тебе, дати корисну підказку по роботі з rombik та просто підняти настрій. Сміливо клікай на неї, коли потрібна моральна підтримка!

Експорт та формати

Після побудови схеми, ви можете зберегти її у різних форматах:

  • Word (.docx) Справжні об’єкти документа Word (не картинка) — фігури, рідні для Word, за ДСТУ. Високі схеми розбиваються на сторінки конекторами
  • SVG / PNG Ідеально для вставки в Word, Google Docs чи презентації
  • PDF Векторний формат для друку — курсові, методички, презентації
  • Typst Нативний код для сучасних систем верстки наукових робіт
  • Excalidraw Відкривається в Excalidraw рідними об’єктами дошки — для дошки й презентацій

Доручити AI (API / CLI / MCP)

rombik — не лише сайт. Готовий скіл для AI-агентів (Claude Code тощо) дає змогу просто попросити — і агент сам збудує блок-схеми з твого коду. А якщо хочеш керувати сам, той самий рушій є по HTTP API, CLI та MCP (для клієнтів типу Claude Desktop чи Cursor — агент дістає інструмент рендеру прямо в чат). У будь-якому разі платиш лише за згенеровані схеми; ключ — в акаунті.

  • 🤖 AI-агенти — готовий скіл (Claude Code тощо) + OpenAPI: агент сам генерує схеми з твого коду, ти лише ставиш задачу
  • CLI rombikrender і batch у терміналі; вхід через браузер (rombik auth)
  • HTTP API — зі скриптів, CI чи власного бекенду (за API-ключем)
  • Формати ті самі: Word (.docx), Typst, Excalidraw, SVG, PNG, PDF; пакетний рендер → багатосторінковий PDF або zip
Як підключити →

Схема побудувалась не так? Є ідея?

Якщо якась конструкція намалювалась неправильно — напиши, додай шматок коду, і я полагоджу.