singlepost

Создание тестовой системы << На главную или назад  

Программисты! Помогайте! Вот в голове родилась мысль, создать собственную тестовую систему. Зачем мне это, спросите вы? Все просто – что бы узнать больше о создании подобных программ.
Посоветуйте с чего можно начать, и какие книги лучше почитать по этой тематике?
Сама тестовая система представляет из себя программу которая мгновенно проверит правильность решения олимпиадных задач

29 ответов в теме “Создание тестовой системы”

  1. 28
    Пользователь Удален ответил:

    #28: Вы уж совсем впадаете в крайность

  2. 27
    Александр Lert ответил:

    #27:

    Легко сделать лабиринт, в котором будет миллиард кратчайших путей, т.е. миллиард правильных ответов.

  3. 26
    Пользователь Удален ответил:

    #24:
    АСМ это тоже умеет. Плоский файл output.txt на выходе, строки – варианты путей, одна строка = один путь.

  4. 25
    Леонид Максимов ответил:

    > Классический пример – задача о поиске кратчайшего пути к выходу из лабиринта. Если запросить, чтобы выходными данными был сам путь, то правильных ответов может быть несколько, так как обычно кратчайших путей существует несколько.

    это задача про экстремум функционала, определенного на дискретном множестве.

  5. 24
    Андрей Горбоконь ответил:

    #22, тогда вместо варианта правильно работающей программы,
    нужно брать программу проверяющую ответ на соответствие поставленному условию.

  6. 23
    Александр Lert ответил:

    Например, задачи, где требуется вывести последовательность действий, приводящее к какому-либо результату. Классический пример – задача о поиске кратчайшего пути к выходу из лабиринта. Если запросить, чтобы выходными данными был сам путь, то правильных ответов может быть несколько, так как обычно кратчайших путей существует несколько.

  7. 22
    Леонид Максимов ответил:

    в большом количестве, да?

    сумел вспомнить только два типа задач со множественными правильными решениями:
    1. задачи с неполной формулировкой (например, "сколькими способами можно разложить 7 шариков в 7 ящиков?").
    2. задачи с достижением экстремума функционалом, определенном на дискретном множестве (например, "для каких цифр X и Y верно X+Y=10?").

    назовите еще.

  8. 21
    Данила Романов ответил:

    не факт. (с)
    существуют задачи, причем в большом количестве, где вариантов ответом может быть несколько, причем все они могут быть правильными! И тогда выше описанный способ не прокатит…

  9. 20
    Пользователь Удален ответил:

    АСМ делает так:
    Есть входной файл input.txt, написанная экзаменуемым программа обрабатывает входные данные – на выходе имеем output.txt
    В итоге система подсовывает различные input'ы и сверяет output'ы.
    Система действует. Код неважен – главное корректная работоспособность программы

  10. 19
    Дмитрий Матвеев ответил:

    Если серьезно, то Кнут/"Исскусство Программирования"/Том 1/Задача 14 ;-)

    Ну а так эти системы пишутся как 2 пальца, хотя да, опыт неплохой

  11. 18
    Евгений Гаврин ответил:

    А?

  12. 17
    Евгений Гаврин ответил:

    cl.exe – это компилятор студии

    создаете bat файл

    внутри текст

    "%DIR%\Compiler\Bin\cl.exe" /nologo /MT /W3 /GX /O2 /D WIN32 /D DEBUG /D CONSOLE /D MBCS /c Lab_1.cpp

    Итого он вам скомпилирует файл Lab_1.cpp

  13. 16
    Данила Романов ответил:

    эм.. че-то я мало что понял)

  14. 15
    Евгений Гаврин ответил:

    Через командную строку – батником или программой специально обученной, которая будет запускать компилятор с нужным параметрами.

    %DIR%\Compiler\Bin\cl.exe /Od /I "%DIR%\Include" /I ".." /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_MBCS" /Gm /EHsc /RTC1 /MLd /Fo".\/" /Fd".\vc70.pdb" /W3 /c /ZI /TP ".\main.c" /nologo
    if ErrorLevel 1 goto :Error

    Например так.

  15. 14
    Евгений Гаврин ответил:

    А если ввести стандартизованный ввод-вывод в приложении?
    И обрабатывать уже скомпилированное приложение.
    Получаем код – компилируем, обрабатываем потоки ввода-вывода.
    При одних входных данных при каждом обращении должны получаться одинаковые результаты.

  16. 13
    Данила Романов ответил:

    вопросик: как программно скомпилировать программу:))??&&

  17. 12
    Санёк Кулицкий ответил:

    Писал подобную вещь… оч увлекательно. но одному писать чтото большое оч тяжело.. а у меня именно так и получается, что пишу ее один… )Притом финиша у подобного проекта не вижу… все время есть что развивать… )

  18. 11
    Данила Романов ответил:

    Да Фиг Ня – правда чтоли??? он мне не расскажет:)..
    Александр Quyse Lert – ммм, наверняка о том, просто меня первый пункт смущает)

  19. 10
    Евгений Гаврин ответил:

    topcoder.com

  20. 9
    Евгений Гаврин ответил:

    Это сайт известный – ты такое хочешь?

  21. 8
    Евгений Гаврин ответил:

    //olympiads.kz/node/110

  22. 7
    Александр Lert ответил:

    Правильно делаешь, что хочешь такую вещь написать – тестирующую систему :) Это очень интересный проект, как в проектировании, так и в кодировании. Только делать это не просто, если только ты не хочешь получить простейший тестер.

    Основные проблемы будут, вероятно, следующие:
    1. сетевое программирование
    2. наложение ограничений на выполняющиеся процессы (по времени, памяти и т.д.)
    3. хранение результатов контеста (если в БД, то особо труба :) ) )

    Скажи, я вообще о том, что тебе нужно? :) ))

  23. 6
    Данила Романов ответил:

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

  24. 5
    Daniil Mikhalev ответил:

    у Григорьевых спроси))) он сделал))

  25. 4
    Евгений Гаврин ответил:

    //www.google.ru/search?q=программа+для+проведен...

    ADSoft Tester
    UniTest
    Мастер-ТЕСТ
    и тд что найдете

  26. 3
    Евгений Гаврин ответил:

    Вы, наверное удивитесь, но на олимпиадные задачи есть решения.

  27. 2
    Евгений Гаврин ответил:

    А программы для проведения тестов есть в большом количестве.
    И правильней это называть – Система тестирования знаний, а не тестовая система, как у нас это любят делать

  28. 1
    Данила Романов ответил:

    я понимаю что их много(кстати не могли бы вы привести список:)), но я сам хочу узнать как их можно написать, что они из себя представляют, это же интересно…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.