Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 5
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2014 » Июль » 22 » Проверка задач на тестовых файлах
15:19
Проверка задач на тестовых файлах
Часто возникает необходимость проверки своих задач на уже готовых тестовых файлах. Для этого приходится неоднократно проводить рутинную работу: изменять имя файла, запускать программу на выполнение и сравнение двух файлов. Последнее требует иногда написание дополнительной программы для сравнения файлов по-символьно. Все это занимает уйму времени. А хочется побыстрее. Предлагаемый мною вариант я использую для проверки программ на школьных олимпиадах.Итак, у вас есть файлы, например: input1.txt, output1.txt, input2.txt, output2.txt, ..., input10.txt, output10.txt для какой-то задачи. И есть исходный код программы programA, ориентированный на ввод и вывод в файлы input.txt, output.txt (или другие имена, на самом деле это не важно). Нужно предварительно его скомпилировать и получить exe-файл. Кроме этого рассмотрим два варианта:1) ввод-вывод осуществлен с помощью файлов2) ввод-вывод осуществлен через стандартный консоль ввода-вывода: клавиатура и монитор.Все файлы должны быть в одном каталоге. Пишем bat-файлы:rem taskA.batrem создаем файл для отчета echo %1 >test.txtrem организуем цикл по всем тестам от 1 до 10for %%a in (1 2 3 4 5 6 7 8 9 10) do call bat1.bat %1 %%aren bat1.batrem копируем  исходный тестовый файл как input.txtcopy input%2.txt input.txtrem если 1-й вариант, просто запускаем файл %1.exerem если 2-й вариант, то %1.exe <input.txt >output.txtrem  сравниваем два файла с помощью fc.exe rem  и выводим результат проверки в файл для отчетаrem  вместо fc.exe можно поставить свою программу rem  для проверки двух файловecho %2: >>test.txt fc.exe output%2.txt output.txt >>test.txtДалее запускаем из командной строкиC:\>taskA.bat programA И смотрим файл test.txt. Если отличий не найдено, то будет выведено сообщение "различия не найдены". Сколько таких сообщений, столько и верно пройденных тестов. Можно подготовить несколько файлов для разных задач taskB.bat, taskC.bat  и т. д., изменив только числа в скобочках в строке for - это номера тестов. Тогда проверка файлов занимает меньше времени. Но таким образом нельзя проверить на время выполнения, только на правильность прохождения тестов.Буду рада, если кому-то мои знания помогут!
Просмотров: 99 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Форма входа
Календарь
«  Июль 2014  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей