Перейти к содержимому

Фотография

DelphiВопросы по дельфи


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 96

#61
Patriot_

Patriot_
  • Постоялец
  • 407 сообщений
Я хочу сделать электронный учебник по Паскаль. на дельфях конечно. Можно ли такое замутить: прога дает студенту задание, он решает и дает ответ в виде кода. Прога проверяет и определяет правильно ли ответ. :D
  • 0

#62
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

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

А проверяться код будет? Или что? :D

Сообщение отредактировал Zulkar: 17.06.2009, 17:54:20

  • 0

#63
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений

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


легко
  • 0

#64
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

легко

Вы сможете это сделать? Просто я лично не представляю, как писать смесь компилятора с валидатором кода, который будет проверять не только лексическую корректность, но и правильность работы программы. Я такого никогда не видел, хотя такая вещь оочень сильно бы пригодилась. Это чуть ли не революция была бы в мире программирования. Проверка правильности работы кода на этапе компиляции.... Чудо.

Сообщение отредактировал Zulkar: 17.06.2009, 17:58:11

  • 0

#65
Patriot_

Patriot_
  • Постоялец
  • 407 сообщений
2 Zulkar
Да, я именно о проверке кода и говорю.
2 Big Joe
Не подскажите, как?
  • 0

#66
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

2 Zulkar
Да, я именно о проверке кода и говорю.

Код который чуть сложнее чем hello world - можно написать разными способами. Все невозможно учесть.
  • 0

#67
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
> ответ в виде кода

Не заметил ...

Тогда сложно т.к методов решения может быть куча, а результат один.

Если только задачи не будут типа: Используя команду ShowMessage, разработайте программу вывода сообщения "Hello world" на экран)))
  • 0

#68
Patriot_

Patriot_
  • Постоялец
  • 407 сообщений
Ладно. А как использовать компилятор дельфи? ну, просто проверить синтаксис кода...
  • 0

#69
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Поищи в гугле на тему "Компилятор dcc32"
  • 0

#70
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

Ладно. А как использовать компилятор дельфи? ну, просто проверить синтаксис кода...

читать в справке про dcc32. Там все просто. Нужно сформировать правильную командную строку (правильно указать пути ко всем подключаемым модулям), вызвать компилятор, перенаправить его стандартные потоки входа/выход в свои пайпы, прочитать код возврата, и будет ясно - верен код, или нет.
  • 0

#71
xxel

xxel
  • Завсегдатай
  • 146 сообщений

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

Можно. Для этого код ответа надо распарсить в Abstract syntax tree (AST), оптимизировать/свернуть AST до максимально упрощеного вида и сравнить с AST'ами (2-3 должно хватить) правильного ответа.

Сообщение отредактировал xxel: 18.06.2009, 09:18:43

  • 0

#72
"0x0000"

"0x0000"
  • Свой человек
  • 543 сообщений

Можно. Для этого код ответа надо распарсить в Abstract syntax tree (AST), оптимизировать/свернуть AST до максимально упрощеного вида и сравнить с AST'ами(2-3 должно хватить) правильного ответа.

можно хотяб прототип, как это должно выглядеть :-) .

Zulkar - вот пусть компилятор делфи и проверяет конеч. результат. Варианты написания проверять незачем. Сорри если чё не так пишу,спросоня мог не понять

Сообщение отредактировал "0x0000": 18.06.2009, 10:13:21

  • 0

#73
xxel

xxel
  • Завсегдатай
  • 146 сообщений

Можно. Для этого код ответа надо распарсить в Abstract syntax tree (AST), оптимизировать/свернуть AST до максимально упрощеного вида и сравнить с AST'ами(2-3 должно хватить) правильного ответа.

можно хотяб прототип, как это должно выглядеть :-) .

Во-первых я не говорил что это будет выглядеть и/или реализовываться просто.
В грубом прикиде при использовании дельфей уйдет не один месяц, если вообще закончится

Во-вторых прототип чего из перечисленого и для чего ?
В инете этих прототипов как грязи, осталось только в кучу собрать.
Посторение AST - для начинающих YACC/BISON и пр.
Оптимизация AST - зависит от конретного AST + Graph Rewriting + общие техники оптимизации
Сравнение двух AST - вообще задача лабораторной работы студента
Кому надо найдет без труда.
А вот на допиливание этого прототипа уйдет уже непрогнозируемое кол-во времени
  • 0

#74
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

Zulkar - вот пусть компилятор делфи и проверяет конеч. результат. Варианты написания проверять незачем. Сорри если чё не так пишу,спросоня мог не понять

Требовалось изначально именно вариант написания. Хотя никогда в универе преподаватели код не проверяли. Зачем?
  • 0

#75
"0x0000"

"0x0000"
  • Свой человек
  • 543 сообщений
xxel - дальше молчу,т.к. одни незнакомые понятия,хоть и сам и кодер.
Zulkar - если бы мне вдруг прям действительно нужно было бы проверять варианты написания, то замутил бы шаблон варианта ответа.Т.е. какая то основа всё равно вроде будет,прог-ма проверяет большие и небольшие отклонения от шаблона с автом. компиляцией и проверкой output программы
Ну типа того,вообщем ;((

Сообщение отредактировал "0x0000": 18.06.2009, 11:18:11

  • 0

#76
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

Zulkar - если бы мне вдруг прям действительно нужно было бы проверять варианты написания, то замутил бы шаблон варианта ответа.Т.е. какая то основа всё равно вроде будет,прог-ма проверяет большие и небольшие отклонения от шаблона с автом. компиляцией и проверкой output программы
Ну типа того,вообщем ;((

Ок, первое что взбрело в голову. ПРостейшая программа. Принимает входные данные (числа с клавы), пока не введен 0. Выводит максимальное, минимальное, и среднее число. Сколько вариантов такой программы? Вы сможете гарантировать что они все будут признаны правильными и что она отсеет неправильные?
  • 0

#77
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
Можно далеко отклониться от шаблона при этом написать правильный и рабочий код. Глупо это.
  • 0

#78
"0x0000"

"0x0000"
  • Свой человек
  • 543 сообщений

Можно далеко отклониться от шаблона при этом написать правильный и рабочий код. Глупо это.


несогласен,вариантов решения конечное число. Да сама задача глупая, я ж просто думаю о теорет. решении

Принимает входные данные (числа с клавы), пока не введен 0. Выводит максимальное, минимальное, и среднее число. Сколько вариантов такой программы? Вы сможете гарантировать что они все будут признаны правильными и что она отсеет неправильные?

Уточним. Программа должна даже не компилируясь решать правильно или нет? С погрешностями думаю можно сделать, величина погрешности будет зависеть от каких нибудь параметров,например степени отхождения от шаблона-стандарта.
Я не думаю что вариантов решения прям такое огромное число.
Спорить желания нету,детально разбираться тоже.Я не говорю что вы не правы,просто думаю что теорет-ки решаемо :-)

Сообщение отредактировал "0x0000": 18.06.2009, 11:52:02

  • 0

#79
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений

несогласен,вариантов решения конечное число. Да сама задача глупая, я ж просто думаю о теорет. решении

Конечное. А толку с того? Число возможных программ на С++ размером до 1 мб кода тоже конечное.

Уточним. Программа должна даже не компилируясь решать правильно или нет?

Да, именно. Единственное что приходит в голову - это компилятор+линкер+тулза для юнит тестов. Если прямо на коде разбор - вот честно, плагин к студии я бы купил с удовольствием. Логические ошибки на этапе компиляции отловить - это стоит того.

Спорить желания нету,детально разбираться тоже.Я не говорю что вы не правы,просто думаю что теорет-ки решаемо :-)

Ну, в теории да. А на практике? :)

Сообщение отредактировал Zulkar: 18.06.2009, 12:02:57

  • 0

#80
Big Joe

Big Joe
  • Постоялец
  • 316 сообщений
> несогласен,вариантов решения конечное число.

Допустим нужно написать a + b

z := a + b;
z := (a) + (b);
z := (a + b) - b + b;
z := (a + b) - b + b - b + b итд, тупо но конечный результат будет правильным.

Сообщение отредактировал Big Joe: 18.06.2009, 12:22:16

  • 0


Количество пользователей, читающих эту тему: 3

пользователей: 0, неизвестных прохожих: 3, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.