пятница, 30 сентября 2011 г.

Редактор блок-схем

Вашему вниманию представляется программа, которая предназначена для создания, редактирования и экспорта блок-схем алгоритмов. Пользователю не нужно заботиться о размещении и выравнивании объектов, программа автоматически разместит все блоки. Редактор позволит экспортировать блок-схему в исходный текст программы для разных языков программирования (Pascal, C/C++, Алгоритмический язык). Редактор блок-схем позволяет экспортировать изображение схемы в различные графические форматы: BMP, JPEG, PNG, TIFF, ICO, PPM, XBM, XPM, SVG. Программа распространяется на условиях лицензии GNU General Public License (GPL). Программа написана на языке C++ на основе библиотеки Qt. Доступны бинарные сборки как для GNU/Linux, так и Microsoft Windows (2000/XP/2003/2008/Vista/7).


Возможности
  • генерация исходного кода на основе блок-схемы в различные языки программирования;
  • автоматическое размещение блоков на схеме;
  • экспорт схемы в популярные растровые форматы;
  • экспорт схем в векторный формат SVG;
  • возможность работы с буфером обмена;
  • масштабирование блок-схемы;
  • поддержка нескольких языков переводов;
  • конвертация блок-схемы в исходный код на нескольких языках программирования;
  • бесплатность и открытость программы;
  • открытый формат файла, основанный XML;
  • кроссплатформенность: имеются сборки для Microsoft Windows и GNU/Linux.


Снимки экрана






Загрузки
  1. Исходный код: https://github.com/viktor-zin/afce/archive/master.zip
  2. Сайт: https://viktor-zin.github.io/afce
  3. Бинарная сборка для Windows: afce-0.9.8-win32.exe
  4. Linux - Mageia Cauldron: afce-0.9.7-0.git20140901.1.mga5.i586.rpm
  5. Бинарная сборка для MacOS X: afce-0.9.8-beta-x64.dmg

43 комментария:

  1. Павел Росс, информатика 5-11 клпятница, 23 марта 2012 г., 3:01:00 GMT+7

    Спасибо за вашу работу.
    использую в школе в связке с PascalABC.
    до этого гонял под вайном(дебиан\убунта\минт), пока не додумался посетить вашу страничку.
    Просьба - нельзя ли разделить ввод\вывод по командам раздельно,
    а то ученики поначалу постоянно путаются.
    Еще раз спасибо!

    ОтветитьУдалить
  2. Добрый день.
    Существует версия afce-0.9.5, доделанная Сергеем Рябенко: http://blog.nntc.nnov.ru/?p=1326 . Но он полностью изломал локализацию, в остальном всё сделано более-менее. В Mageia локализация была исправлена патчем, и Вы можете найти итоговый пакет afce-0.9.5 в Mageia Cauldron: http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/cauldron/SRPMS/core/release .

    Список известных ошибок:
    - нет английской справки, только русская для всех локалей,
    - диалоги частично руссифицированы, у некоторых диалогов нет заголовка,
    - при закрытии внутреннего окна крестиком статус кнопки, отвечающей за
    это окно, не меняется, в Меню тоже статус не меняется,
    - частично нет иконок у некоторый пунктов меню,
    - не запоминается расположение внутренних окон.

    Пожалуйста, не бросайте разработку программы, ведь скоро уже qt5. Было бы неплохо продолжить разработку и выпустить новую версию afce.

    ОтветитьУдалить
    Ответы
    1. Здравствуйте!

      На сколько мне известно, Qt5 уже давно вышла. А вот продолжать разработку программы пока не хватает времени. Хотя, действительно, там есть куда двигаться. Может, через какое-то время я всё таки смогу продолжить разработку.

      Удалить
    2. Тогда еще из школьных языков можно было бы добавить BASIC в разных диалектах.
      Я убрал для Mageia переключение языков из Меню, которое было у Сергея Рябенко, и перешёл на автоопределение языка, так как не реализовано запоминание в конфиге, но это тоже можно вернуть и доделать.
      С нетерпением будем ждать новой версии!

      Удалить
    3. Я опубликовал исходники на GitHub: https://github.com/viktor-zin/afce

      Думаю, можно совместными усилиями продолжить разработку Редактора.

      Удалить
    4. Лучше было начать с версии 0.9.5 и её продолжить улучшать, именно она признана образовательными дистрибутивами Alt Linux, EduMagic. А раз Вы начали с 0.9.0, то тогда внести наработки из версии 0.9.5.

      Удалить
    5. Попробую собрать воедино все изменения и дополнения.

      Удалить
  3. http://svnweb.mageia.org/packages/cauldron/afce/current/?view=log
    Посмотрите, пожалуйста, чего я исправил после того как Вы взяли src.rpm.

    ОтветитьУдалить
  4. Не получается запустить, выдает ошибку qt platform.

    ОтветитьУдалить
    Ответы
    1. Напишите в какой операционной системе запускаете и какую версию Редактора используете?

      Удалить
    2. Операционная система Windows 7. Версия afce-0.9.7-win32.

      Удалить
    3. Предлагаю общение перевести на GitHub, там можно скриншоты прикреплять, да делать общее обсуждение проблем. Добро пожаловать: http://github.com/viktor-zin/afce/issues

      Удалить
  5. Уважаемые разработчики, спасибо за программу!
    Но у меня есть проблема
    содержимое блока постоянно выходит за его рамки
    Например, в том же блоке процесса и операторе условия
    Возможно ли сделать какое-нибудь растяжение блоков?

    ОтветитьУдалить
    Ответы
    1. Операционная система Windows 7. Версия afce-0.9.7-win32.

      Удалить
    2. Спасибо за отзыв! Блоки расширяться не могут, но можно переносить строки. А если уж совсем надо, то можно передать в SVG и в Inkscape отредактировать.

      Удалить
    3. Доброго дня!
      А как перенести строку?

      Удалить
  6. Этот комментарий был удален автором.

    ОтветитьУдалить
  7. Здравствуйте. Я хотела просмотреть код программы afce, но многое там не поняла, непривычный синтаксис. Можете скинуть схему построения программы? Или что-либо, что может помочь разобраться в коде. Пыталась гуглить определенные команды, но продвинулась не сильно.

    ОтветитьУдалить
  8. Огромное спасибо за дистрибутив для Mac OS X

    ОтветитьУдалить
  9. Добрый день! Нет ли дистрибутива для Win64?

    ОтветитьУдалить
    Ответы
    1. Отдельную сборку для Windows x64 не делал. 32-битная версия успешно работает на 64-битной платформе. Да и из исходников можно, думаю, без проблем собрать 64-битную версию - просто не было острой необходимости.

      Удалить
  10. Этот комментарий был удален автором.

    ОтветитьУдалить
  11. Скачал , но у меня программа на английском языке , как русский включить не разобрался

    ОтветитьУдалить
    Ответы
    1. До версии 0.9.8 язык выбирался автоматически и не было возможности выбрать вручную. Начиная с 0.9.8 имеется возможность выбрать языка как при установке, так и из меню «Вид» в программе. Ссылки на этом блоге вели на версию 0.9.7, теперь я обновил их до последней версии.

      Удалить
    2. В while что-то текст в две строки не хочет становиться, в if нормально.

      Удалить
    3. Только что проверил - действительно так. Надо будет исправить. Сейчас пока времени не хватает. В апреле-мае планирую уделить проекту время.

      Удалить
  12. Дякую за програму. Мені пригодилася.
    Успіхів!!!

    ОтветитьУдалить
  13. Почему если используется краткая форма ветвления справа в коде все равно пишет else?

    ОтветитьУдалить
    Ответы
    1. В принципе, это не ошибка, код получается всё равно правильный. Просто генерация кода не оптимизирована. Предлагаю на гитхабе сделать заметку по этому поводу.

      Удалить
  14. Софтина просто замечательная! Мужик, спасибо тебе огромное. Главное никакой богомерзкой явы и костылей.
    За человеческую сборку отдельный респект!

    Ушёл работать и пускать слюни...

    P.S.
    Собрал на QT5 - Всё отлично работает

    ОтветитьУдалить
  15. возникает ошибка, при оформлении цикла
    Паскаль
    for i:=1 to n do
    ...
    На С++ переводит
    for(int i = 1; i < n; ++i)
    теряется последнее значение

    ОтветитьУдалить
  16. Не совпадает блок Цикла "ДО" со справочным. В справке зацикливание по ветке НЕТ, а в блоке по ветке "ДА". Может сделать везде по ветке НЕТ?

    ОтветитьУдалить
  17. Я хочу сделат болгарский перевод програму. Что мне надо сделать?

    ОтветитьУдалить
    Ответы
    1. Здравствуйте! Вам нужно взять файл из проекта afce_en_US.ts переименовать afce_bg_BG.ts и в нем перевести необходимые строки (формат XML). Можно воспользоваться утилитой Qt Linguist. Результат перевода можно выслать мне. Также можно перевести документацию. Подробности тут: https://github.com/viktor-zin/afce/blob/master/TRANSLATIONS.md (англ.)

      Удалить
  18. непонятно как выводить текстовые сообщения.

    ОтветитьУдалить
  19. при переводе условия сравнения , например, a>5 and b<9 в язык Ершова не превращает and в русское "и".

    как хадавать типы переменных (строковые вообще есть?) и их объявления не появляются в коде

    ОтветитьУдалить
    Ответы
    1. Такой функционал еще не реализован. Это требует ввода некоторых ограничений при использовании подобных операторов, чтобы можно было в автоматическом режиме преобразовывать. Например, в разных языках программирования оператор неравенства выглядит !=, а в других <>. Также операторы и/или/не имеет разные приоритеты в разных языках. И эти случаи нужно корректно отрабатывать и правильно преобразовывать в соответствующий язык. Генерация абсолютно рабочего исходного кода по блок-схеме не являются конечной целью. Этот редактор в первую очередь предназначен для быстрого построения блок-схем и дальнейшего экспорта в графический формат.

      Удалить
  20. Этот комментарий был удален автором.

    ОтветитьУдалить
  21. как можно поставить в блок схему селективное ветвление(круг)

    ОтветитьУдалить
    Ответы
    1. К сожалению, такой функционал не реализован.

      Удалить
  22. Хорошая программа, но лишь для школьников. Для уроков информатики. Ничего серьезного нарисовать не получится, так как невозможно сделать переходы в нужные места программы. Также редактирование слабовато - элементы удаляются вместе со всеми вложенными структурами.

    ОтветитьУдалить
    Ответы
    1. Согласен, но и я её и создавал главным образом для школьников и учителей информатики.

      Удалить