Установка новой задачи с открытыми тестами

Более новый и простой спобоб

Зачем это нужно?

Иногда авторы задач по программированию предоставляют пользователям тесты к задаче. Пользователи должны во время олимпиады получить ответы на эти тесты и отправить их на проверку.

Подготовка тестов.

Для того чтобы отдать пользователю тесты, необходимо заархивировать их и поместить архив в каталог с задачей в webfiles\YYYY.YYY, где YYYY.YYY-имя архива.

В условии сделать ссылку на этот архив, чтобы пользователи смогли забирать его. HREF должен быть равен webfiles\YYYY.YYY

Task.cfg

Файл task.cfg должен содержать следующие строки:
TYPE = USERS
CHECKER = 'checker.exe'
CHECKFILES = {*.*}
CHECKSUBJECT = FILE
EXTTYPE = 'Пользовательская'

После этого надо поместить чекер под вышеназванным именем в папку задачи.
В качестве примера можно посмотреть задачу `IOI\2008\День 0\3 - "Pyramid" 69214` в курсе `Олимпиады по информатике`

Чекер (или проверяющая программа)

Для проверки решения надо написать проверяющую программу. Когда пользователь отошлет архив, Дельта разархивирует этот архив и запустит в этом каталоге проверяющую программу. Проверяющая программа должна проверить ответы и создать файл $result$.txt, в котором будут находиться следующие строки:
  • Количество баллов
  • Комментарий
  • В качестве комментария надо выводить одну строку, в которой содержатся результаты по каждому тесту. Например так: (0,3,1,0,4,2,1).

    Чекер может открывать *.in,*.out файлы и файлы, которые были в архиве. Упрощённый способ установки задач с открытыми тестами

    Следует учесть, что пользователь мог положить в архив не все файлы

    var
      i:longint;
      ss:string;
    begin
      i:=1;
      str(i,ss);
      ss:='input'+ss;
      assign(input,ss+'.txt');
      {$I-}
      reset(input);
      {$I+}
      if IOResult<>0 then
        {Файла нет}
      else
      begin
        {Файл есть}
        close(input);
      end;
    end.
    

    Загрузка

    Загрузка осуществляется обычным образом. На счет ссылки webfiles\YYYY.YYY, и самого архива беспокоиться не надо, он будет положен в нужное место автоматически.

    © Ruslan Korzhik
     e-mail

    Last update: 19.04.2005