Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2007, 23:27
Tester

 
Сообщений: n/a

помогите! тестирующая программа
Здравствуйте!
Мне требуется разработать программу, тестирующую олимпиадные задачи по программированию(эти задачи на языке Pascal).

Подскажите пожалуйста примерную инфологическую структуру тестирующей программы и алгоритм проверки правильности решения задач! Так же очень нужна информация о требованиях к проверке задач олимпиад. Буду очень признателен! Если у вас есть что-то по этой теме ПОЖАЛУЙСТА не игнорируйте. За ранее СПАСИБО.
  #2  
Старый 20.05.2007, 12:54
Аватар для CD_Eater
Пользователь

Отправить личное сообщение для CD_Eater Посмотреть профиль Найти все сообщения от CD_Eater
 
Регистрация: 21.09.2006
Адрес: Москва
Сообщений: 91

пишете свой компилятор паскаля, оставляя возможность управления программой - вставляя проверочные инструкции на размер памяти и время выполнения, и оставляя возможность "тихой" остановки исполняемого процесса без краха системы

запускаете тестовые примеры по одному, в реальном времени (параллельное выполнение нескольких потоков приведёт к неверному вычислению времени выполнения программ). ну, по крайней мере, по одному тесту на каждый процессор системы.

а тестовые примеры, которыми проверяются программы, выдумывают сами составители задач. причём иногда выдумывают крайне плохо, напр., на тимусе были случаи, когда заведомо ложные алгоритмы решения проходили как правильные.
  #3  
Старый 20.05.2007, 14:53
Tester

 
Сообщений: n/a

CD_Eater, споасибо огромное, что откликнулся!
Т. е. всего два критерия, влияющие на оценку тестируемой программы(исполюзуемая оперативная и время выполнения)?

Я твою мысль понял так: имеется нек. задача(подразумевается наличие вх. и вых. параметров) и некоторое эталонное решение этой задачи(при котором, например, время выполнения минимальное(с т. зр. составителя)). Результаты выполнения тестируемых программ(напр. время выполнения) сравниваются с эталоном и таким обр. ставятся оценки.
  #4  
Старый 20.05.2007, 20:14
Пользователь

Отправить личное сообщение для M_Gustokashin Посмотреть профиль Найти все сообщения от M_Gustokashin
 
Регистрация: 24.09.2006
Адрес: Москва, Багратионовская
Сообщений: 81

Есть хорошая система eJudge http://www.ejudge.ru
Есть хорошая статья "Принципы проверки учебных и олимпиадных задач по информатике" Е.В.Андреевой: http://g6prog.narod.ru/180803.html
А еще есть гугл, который все это ищет.

Последний раз редактировалось M_Gustokashin, 20.05.2007 в 22:45.
  #5  
Старый 20.05.2007, 20:34
Tester

 
Сообщений: n/a

Благодарен за ссылки, но первая не работает, а материалы второй я уже видел
Ожидаю ответ CD_Eater'а
  #6  
Старый 20.05.2007, 20:37
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,374

>но первая не работает
а если www добавить?
  #7  
Старый 20.05.2007, 23:34
Tester

 
Сообщений: n/a

А если добавить 'www', то работает
  #8  
Старый 21.05.2007, 15:51
Аватар для CD_Eater
Пользователь

Отправить личное сообщение для CD_Eater Посмотреть профиль Найти все сообщения от CD_Eater
 
Регистрация: 21.09.2006
Адрес: Москва
Сообщений: 91

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

а по поводу сложности проверок решений некоторых задач (когда для проверки правильности решения автору задачи нужно писать свою программу, более сложную чем само решение) - я вообще был удивлён. неужели кто-то этим заморачивается?
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа летней стажировки в самсунг электроникс 2007 незарегистрированный Участие 0 25.04.2007 16:10