|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Delphi Code в Блок схему
Преподы рехнулись окончательно.
Беру учеников на репетиторство из своего же ВУЗа. Там со старта дают Delphi, чтоб дети не пугались синих окон, и оставалась классическая идея паскаля как языка для обучения. В начале сентября попался ученик с задачей: "написать код, составить блок схему". Благо прога была простая (сортировка многомерных (n>3) массивов). Ну около пяти прог мы с учеником перенесли в "ромбики и кружочки", адский труд. Сейчас же их просят составлять программы с GUI, обрабатывающие входящие текстовые файлы, анализирующие данные, строящие графики и ещё куча математики по этим данным. (ориентирование на физические задачи) и в отчёт требуют кровь из носа блок схемы. Кто-нибудь сталкивался с ПО для переноса готового кода в блок схему именно на языке OPascal? |
#2
|
||||
|
||||
[joke]IDA Pro умеет строить нечто вроде блок-схем.[/joke]
На своем опыте могу сказать, что преподы в таких случаях как правило переваривают блок-схему вида начало->ввод->(цикл пошагового рассчета графика и его вывод)->конец. То есть я всегда сдавал весьма обобщенно, иногда вплоть до линейности. Схемы к GUI или подробную разрисовку алгоритмов никто не просил у меня, когда я сдавал. А ПО, насколько я понимаю, не существует и существовать не может - ту же событийную модель делфы перевести в блок-схему автоматически весьма затруднительно. Не говоря уже о том, чтобы для каждого блока вписать его смысл, а не строки кода. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 29.09.2013 в 17:03. |
#3
|
||||
|
||||
Я видел программу, которая и события и свойства и процедуры с функциями переводила в БС и печатала она это дело на большом таком А2.
Реализовать это весьма не сложно, нужен качественный парсер своими руками (RegExp мне в помощь). Не хочу изобретать велосипед, ибо точно есть такой софт. |
#4
|
||||
|
||||
Эм. Ну такой-то софт есть (та же avtoshema), но это очень далеко от блок-схемы. Такой результат с огромной вероятностью не примут преподы - схема будет размазана на много листов, совершенно непонятная, и вместо описания сути блоков будет их построчное расписывание. И насчет "реализовать несложно" - зря: после разбивания функции на блоки по 2-3 строки (что и правда совсем нетрудно, я это делал), нужен семантический анализатор для понимания сути каждого блока, нескольких смежных и целых функций, чтобы сворачивать это во что-нибудь, что хотя бы можно прочитать. А эта задача уже невыполнима современными средствами.
Преподы же пытаются приучить к блок-схемам, которые реально могут помочь - например, схема большущего проекта из 10-15 блоков и их связей. А проверка каждого введенного символа и все защиты от дурака, расписанные на том же делфи, только в прямоугольниках, никого не интересуют. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 29.09.2013 в 17:30. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Uniq! (29.09.2013)
|
#5
|
||||
|
||||
О семантике - правильные мысли, согласен.
А вот о слове "приучить", я бы, наверное, поспорил. но не буду В целом вопрос прояснился. Просто снизим уровень архитипов. И не будем так детализировать наш код на бумаге. |