Перейти до контенту

Як це працює

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

ПочатокВвід nn > 0Вивід «Додатне»Вивід «Недодатне»КінецьТакНі

Рисунок 1 — main

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

  • Термінатор

    Початок і кінець програми чи функції

  • Процес

    Обчислення й присвоєння

  • Дані

    Ввід і вивід

  • Рішення

    Умова з двома виходами: if, while, switch

  • Підготовка

    Заголовок циклу 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 → Кінець
  • «:=» і «=» → дія
Rust повна підтримка
  • хвостовий вираз без «;» → «Повернути …» у кожній гілці if / match; Ok(()) у хвості → Кінець
  • let y = if / match / loop → присвоєння в кожній гілці, break x → «y = x» і вихід
  • match → каскад умов: діапазони, «|», guard-и, кортежі поелементно; остання гілка — «інакше»
  • loop, while, while let, for … in (діапазони, .rev(), .step_by()) → цикли; loop із if-break у кінці — постумова
  • break / continue з міткою 'outer → стрибок через кілька циклів (з’єднувачем)
  • «?» → розвилка «Помилка?»; println! / print! → «Вивід …», read_line → «Ввід …», panic! → помилка
  • функції, методи impl («Тип::метод»), трейти, замикання → окремі схеми
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, Rust, PHP, Pascal), або в тебе взагалі нема коду — лише словесний опис алгоритму? Для цього є рідний формат rombik: схему задаєш напряму, а не кодом. Це той самий механізм, яким користується AI — і він покриває два випадки:

  • Нема коду, лише опис словами — попроси AI (ChatGPT/Claude) зробити схему за твоїм текстом і встав результат
  • Мови нема серед парсингових (асемблер, Kotlin, Swift, псевдокод) — AI перетворює будь-який код на схему за ДСТУ
  • Повний ручний контроль — задаєш дерево схеми напряму (astJSON), layout сам додає правильні ДСТУ-форми
  • Готову схему доводиш у візуальному редакторі. Доступно з Pro

Найпростіше — з Pro: у редакторі обери мову «Опис / будь-яка мова (AI)», встав опис словами (чи код будь-якою мовою) і натисни «Згенерувати». AI лише перекладе це на мову rombik, а схему за ДСТУ накреслить наш детермінований рушій — не AI, тому стабільно й за стандартом. Безкоштовний варіант (без Pro): скопіюй специфікацію формату, встав у ChatGPT/Claude зі своїм описом — попроси повернути схему у форматі rombik, тоді встав відповідь у редактор, обравши мову «rombik».

Переглянути специфікацію

Особливі випадки: як rombik малює нестандартне

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

  • Обробка винятків (try/catch/finally, except) — у ДСТУ немає окремої фігури для винятків, тож після тіла try обробник малюється розгалуженням «Виняток ValueError?», а finally — кроками після нього.
  • Потоки й однорядкові анонімні лямбди (stream, map(lambda…), [](int a, int b) { return a < b; }) — лишаються текстовою дією. Лямбда з логікою (умова, цикл чи кілька дій) у виклику на кшталт std::sort(…) стає окремою схемою lambda — так само, як лямбда, присвоєна імені (f = lambda …).
  • Мітковані break/continue (break outer) — виходять саме з того циклу, на який вказує мітка; перехід через кілька циклів на схемі — з’єднувачем.
  • Анонімні й локальні класи (new Comparator<T>() {…}, клас усередині функції) — їхні методи стають окремими схемами («Comparator.compare»), як у звичайного класу. Текстові блоки ("""…""") — це рядки, тож вони лишаються текстом у блоці.

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

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

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

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

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

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

  • AI-агенти — готовий скіл (Claude Code тощо) + OpenAPI: агент сам генерує схеми з твого коду, ти лише ставиш задачу
  • CLI rombik — render і batch у терміналі; вхід через браузер (rombik auth)
  • HTTP API — зі скриптів, CI чи власного бекенду (за API-ключем)
  • Формати ті самі: Word (.docx), Visio, draw.io, Typst, Excalidraw, SVG, PNG, JPEG, WebP, GIF, PDF, HTML; пакетний рендер → багатосторінковий 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) — корпоративний стандарт діаграм
  • JPEG / WebP Та сама картинка в інших форматах: JPEG — на білому тлі, WebP — без втрат і легший за PNG
  • GIF Статична картинка або анімація, де схема малюється блок за блоком — для соцмереж і презентацій
  • HTML Схема й код із номерами рядків однією сторінкою — відкривається в будь-якому браузері, друкується в PDF

Структограми (Насі-Шнайдермана)

rombik будує не лише блок-схеми, а й структограми Насі-Шнайдермана — вкладені прямокутники без жодної стрілки. Той самий код, інший вигляд: у редакторі вмикаєш тумблер «Структограма» — і будь-яка функція стає структограмою. Експортується в будь-якому форматі (Word, Visio, draw.io, Typst, Excalidraw, SVG, PNG, JPEG, WebP, GIF, PDF, HTML) і працює на всіх мовах однаково.

gradeВвід балбал ≥ 90ТакНіВивід «Відмінно»Вивід «Інше»

Оцінка за балами — структограмою

Гумова качечка

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