Як це працює
rombik розбирає твій код справжнім парсером (Python, JavaScript, TypeScript, C, C++, C#, Java, Go, PHP і Pascal), будує логічне дерево алгоритму й розкладає його у блок-схему за ДСТУ 19.701-90 — за лічені секунди, прямо в браузері.
Фігури за стандартом
Термінатор
Початок / Кінець
Процес
Дія, обчислення, присвоєння
Розв’язок
Умова (if / while)
Ввід-вивід
input / print, cin / cout
Межа циклу
Цикл for з лічильником
Підпрограма
Виклик власної функції
Що вже підтримується
Кожна функція стає окремою схемою; її параметри малюються вхідним паралелограмом, а return — паралелограмом виходу. У редакторі код можна не лише вставити, а й перетягнути файлом (.py .js .ts .go .php .cpp .c .java .cs .pas) просто в поле коду — мова визначиться з розширення.
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 → галуження
JavaScript повна підтримка
- if / else, switch (усі case + default), тернарний ?:
- for, for … of, for … in, while, do / while, for(;;) → нескінченний цикл
- break / continue / return / throw, рекурсія
- console.log → «Вивід …», prompt → «Ввід …»
- функції, стрілкові (=>), методи й вкладені класи («Клас.метод»)
- try / catch / finally — малюється тіло try
- стрілкова/функція, присвоєна імені → окрема схема; інлайн-колбек → текстова дія
TypeScript повна підтримка
- усе, що JavaScript (TS обробляється тим самим парсером)
- типи, інтерфейси, generics, as / satisfies — анотації знімаються, лишається логіка
- enum, namespace / module → схеми по членах
- public/private-параметри конструктора, декоратори
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 → цикл, тернарний ?: → галуження
Go повна підтримка
- if / else (з ініціалізатором), switch (усі case, без fallthrough), type-switch, select
- for (класичний, while-форма, нескінченний), for … range
- break / continue / return, рекурсія
- fmt.Print / Println / Printf → «Вивід …», fmt.Scan → «Ввід …»
- функції, методи з ресивером («Тип.метод»), кілька значень
- defer / go → «відкласти …» / «паралельно …», panic → аварійне завершення, os.Exit → Кінець
- «:=» і «=» → дія
PHP повна підтримка
- if / elseif / else, switch (case + default), match → галуження
- for, foreach (foreach ($a as $x)), while, do / while
- break / continue / return / throw, рекурсія
- echo / print → «Вивід …», readline / fgets → «Ввід …»
- функції, методи класів («Клас.метод»), замикання (function / fn)
- try / catch / finally — малюється тіло try
- змінні без «$» (ДСТУ — мова не важлива), тернарний ?: → галуження
Pascal повна підтримка
- procedure / function → окремі схеми
- присвоєння «:=» → дія
- writeln / write → Вивід, readln / read → Ввід
- if .. then .. else
- for .. to / downto .. do
- while .. do, repeat .. until
- case .. of
Telegram-бот для груп
Якщо ти вчишся групою — є @rombik_app_bot. Додаєш його в чат курсу, кидаєш файл із кодом або пишеш /render з кодом — і бот прямо в чаті віддає готову блок-схему та .docx. У групи один спільний баланс експортів: поповнює староста, користуються всі. Перший — безкоштовно. А ще боту можна писати особисто: прив’яжи акаунт rombik — і рендери зі свого балансу експортів, без групи.
Формат rombik — для будь-якої мови чи опису словами
А якщо твоєї мови нема серед тих, що rombik парсить (Python, JavaScript, TypeScript, C, C++, C#, Java, Go, PHP, Pascal), або в тебе взагалі нема коду — лише словесний опис алгоритму? Для цього є рідний формат rombik: схему задаєш напряму, а не кодом. Це той самий механізм, яким користується AI — і він покриває два випадки:
- Нема коду, лише опис словами — попроси AI (ChatGPT/Claude) зробити схему за твоїм текстом і встав результат
- Мови нема серед парсингових (асемблер, Go, Rust, JS, псевдокод) — AI перетворює будь-який код на схему за ДСТУ
- Повний ручний контроль — задаєш дерево схеми напряму (astJSON), layout сам додає правильні ДСТУ-форми
- Готову схему доводиш у візуальному редакторі. Доступно з Pro
Найпростіше — з <b>Pro</b>: у редакторі обери мову «🪄 Опис / будь-яка мова (AI)», встав опис словами (чи код будь-якою мовою) і натисни «Згенерувати». AI лише <b>перекладе</b> це на мову rombik, а схему за ДСТУ накреслить наш <b>детермінований рушій</b> — не AI, тому стабільно й за стандартом. Безкоштовний варіант (без Pro): скопіюй специфікацію формату, встав у ChatGPT/Claude зі своїм описом — попроси повернути схему у форматі rombik, тоді встав відповідь у редактор, обравши мову «rombik».
Межі: чого rombik не малює
Блок-схема за ДСТУ описує структурний потік керування, а не кожну дрібницю мови. Тому деякі конструкції свідомо не розкладаються детально — однаково для всіх мов:
- Обробка винятків (
try/catch/finally,except) — у ДСТУ немає стандартної фігури для винятків; малюється лише основне тілоtry. - Потоки та інлайн-анонімні лямбди (
stream,map(lambda…), лямбда у викликуstd::sort(…)) — лишаються текстовою дією. А лямбда, присвоєна імені (f = lambda …), навпаки, стає окремою схемою. - Мітковані
break/continue(break label) — переривають найближчий цикл; мітка ігнорується. - Анонімні / локальні класи, текстові блоки — відображаються як текстова дія, не окрема схема.
Це межі жанру «довільний код → стандартна блок-схема», а не помилки. Якщо тобі чогось бракує — натисни «Помилка або ідея» нижче, і я гляну.
Інтерактивний візуальний редактор
Окрім автоматичної генерації, у rombik є повноцінний візуальний редактор (кнопка «✎ Редагувати» на картці схеми). Ти можеш:
- Перетягувати блоки (примагнічуються до сітки), рухати цілу виділену групу разом
- Змінювати маршрут стрілок або малювати власні з'єднання; правити текст подвійним кліком
- Ділити на схеми вручну: виділяй блоки рамкою-ласо (Shift+тяг фону) чи Shift-кліком, тоді «⊞ Окрема схема» виносить їх в окремий рисунок (рамкою)
- «⊟ Об'єднати» — зливає кілька схем назад в одну
- Стрілки між схемами автоматично стають парами конекторів (кружечки А, Б, В…)
- «Редагувати всі» — усі функції коду на одному полотні, щоб ділити блоки між ними
- Undo / redo, безмежне полотно з пан/зумом
Доручити AI (API / CLI / MCP)
rombik — не лише сайт. Готовий скіл для AI-агентів (Claude Code тощо) дає змогу просто попросити — і агент сам збудує блок-схеми з твого коду. А якщо хочеш керувати сам, той самий рушій є по HTTP API, CLI та MCP (для клієнтів типу Claude Desktop чи Cursor — агент дістає інструмент рендеру прямо в чат). У будь-якому разі платиш лише за згенеровані схеми; ключ — в акаунті.
- 🤖 AI-агенти — готовий скіл (Claude Code тощо) + OpenAPI: агент сам генерує схеми з твого коду, ти лише ставиш задачу
- CLI rombik —
renderіbatchу терміналі; вхід через браузер (rombik auth) - HTTP API — зі скриптів, CI чи власного бекенду (за API-ключем)
- Формати ті самі: Word (.docx), Visio, draw.io, Typst, Excalidraw, SVG, PNG, PDF; пакетний рендер → багатосторінковий PDF або zip
Експорт та формати
Після побудови схеми ти можеш зберегти її у різних форматах:
- Word (.docx) Справжні об’єкти документа Word (не картинка) — фігури, рідні для Word, за ДСТУ. Високі схеми розбиваються на сторінки конекторами
- SVG / PNG Ідеально для вставки в Word, Google Docs чи презентації
- PDF Векторний формат для друку — курсові, методички, презентації
- Typst Нативний код для сучасних систем верстки наукових робіт
- Excalidraw Відкривається в Excalidraw рідними об’єктами дошки — для дошки й презентацій
- draw.io Редаговувані фігури у draw.io / diagrams.net — для онлайн-дощок і спільної роботи
- Visio (.vsdx) Нативні фігури Visio (.vsdx) — корпоративний стандарт діаграм
Структограми (Насі-Шнайдермана)
rombik будує не лише блок-схеми, а й структограми Насі-Шнайдермана — вкладені прямокутники без жодної стрілки. Той самий код, інший вигляд: у редакторі вмикаєш тумблер «Структограма» — і будь-яка функція стає структограмою. Експортується в будь-якому форматі (Word, Visio, draw.io, Typst, Excalidraw, SVG, PNG, PDF) і працює на всіх мовах однаково.
Rubber Duck Debugging 🦆
Не йде алгоритм або втомила рутина з кодом? У правому нижньому куті редактора на тебе завжди чекає Гумова Качечка. Вона створена спеціально для того, щоб підтримати тебе, дати корисну підказку по роботі з rombik та просто підняти настрій. Сміливо клікай на неї, коли потрібна моральна підтримка!
Схема побудувалась не так? Є ідея?
Якщо якась конструкція намалювалась неправильно — напиши, додай шматок коду, і я полагоджу.