![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.10.2009
Сообщений: 259
|
![]()
Добрый день! Передо мной стоит задача:"Разработать транслятор блок-схем в язык Си".
Начал думать как её можно реализовать и решил написать свой язык разметки(XAML-подобный), который при нажатии на одну кнопку переводится в блок-схему, а при нажатии на другую - в язык Си. Разработал так сказать "синтаксис и спецификацию" своего языка - пользователь выбирает элемент блок-схемы, кликает на объект Image(WPF) для получения координаты левого верхнего угла элемента блок-схемы, записываю этот текст в RichTextBox(координаты и имя элемента), пользователь ручками прописывает что он хочет получить от блока и ширину с высотой этого блока, затем перевожу нормально это все в блок-схему и в код на Си, однако при сдаче получил "удар по морде" примерно в следующем виде:"Нет, так не пойдет! Ты должен строить непосредственно блок-схему и её транслировать, а не два раза выполнять данную операцию - для получения изображения блок-схемы и кода.". После этого вообще ничего в голову не лезет, идей никаких нет! Начал смотреть в сети уже существующие приложения "блок-схема в Си" и "flowchart to C"(для поиска по англоязычным сайтам) - в основном попадались ссылки: "Си в блок-схему", "Flowchart from C" и т.д., а на одном из англоязычных сайтов(на-подобии StackOverflow), когда человек попросил привести ему примеры программ, которые преобразуют блок-схему в некоторый язык программирования, ему ответили(вольный перевод с англ.):"Ты чего, такого вообще не существует! Если бы такое было, то на кой черт нужны программисты - любой ламер бы рисовал блок-схему, нажимал на кнопку и вот у него готовая программа"(вопрос был еще 2003 или 2005 года). Еще на StackOverflow человек просил ему помочь с аналогичной проблемой: "Блок-схема в язык Питон"(вопрос от 2008 года), но ему вообще ничего не ответили! Да, есть Microsoft Visio, с помощью которой можно строить блок-схемы, но код и она "не делает". Как я уже сказал, все мои идеи на этом исчерпались. Может кто подскажет каким образом можно решить проблему, грубо говоря:"Как картинку с блок-схемой, в которой еще элементы могут быть наложены друг на друга, преобразовать в программный код?"(ладно если все элементы правильно расположены, т.е. нет наложений одного элемента на другой, тогда можно было бы значительно усовершенствовать алгоритмы распознавания текста с изображения, чтобы он мог распознать еще и рисованные элементы блок-схемы, но ведь по ошибке можно нагородить элементы блок-схемы друг на дружке и тогда никакой алгоритм распознавания не поможет) Хотя нет, есть немного странная и алогичная идея: когда пользователь кликает по Image, рисовать элемент с данными по-умолчанию, чтобы он видел, что именно было нарисовано в текущий момент, но какой толк в этом?!
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Последний раз редактировалось Mixim; 25.02.2012 в 09:29. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
Идея как-бы проста: закидываешь блок в алгоритм и в другом окне параллельно код генерируется. Оптимизированный код при таком подходе не получишь, но вряд-ли он и требуется. Ввод формул и условий можно сделать по типу формул в Excel.
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Блок схема в С++ | Денис999 | Помощь студентам | 2 | 11.12.2011 17:57 |
Блок схема | lady.ulumba | Помощь студентам | 3 | 11.09.2011 16:47 |
Схема алгоримта (блок схема) на задачу по Паскалю | LINCHAK | Помощь студентам | 0 | 22.10.2010 16:56 |
Блок схема | dimonpwnz | Помощь студентам | 0 | 12.02.2010 19:10 |
Блок схема алгоритма программы и схема взаимодействия модулей. | Lazio | Фриланс | 3 | 02.12.2009 23:10 |