Меню
 
:)

Установка задач

В настоящее время разработана система загрузки задач и деревьев задач на сайт при помощи архива. Для этого необходимо иметь права редактора курса или быть одним из авторов задач на специальном курсе по закачке задач. Такая возможность имеется на странице редактора курса (ссылка "установка задач"), или на специальном курсе для установки задач под ссылкой "редактор".
Посылаемый архив должен содержать дерево разделов, тексты условий и каталоги с тестами.

Все это осуществляется по нижеследующему формату.


Структура архива.

Архив содержит дерево каталогов и задачи, вместе с директориями, содержащими тесты и при необходимости рисунки. Примечание:
Здесь (...) - необязательный элемент <...> - обязательный
<русское_имя_узла(english_node_name)>        - директория (корень дерева)
   <русское_имя_узла(english_node_name)>     - директория (ответвление)
   ...
   <русское_имя_узла(english_node_name)>     - директория (ответвление)
      <индекс>                               - директория (индекс задачи)
      ...
      <индекс>                               - директория (индекс задачи)
     webfiles                              - директория для рисунков(не обязательная)
        <любой файл>                     - рисунок
        <любой файл>                     - рисунок
        ...
        <любой файл>                     - рисунок
     taskrus.htm                         - русское условие задачи
     taskeng.htm                         - английское условие
     task.xml                            - файл описания задачи
         task.cfg                            - обязательный файл (конфигурация тестирования)
         1.in                                - 1-й входной файл тестов
         1.out                               - 1-й выходной файл тестов
         ...
...
<русское_имя_узла(english_node_name)>        - директория (корень дерева)

Возможное изменение структуры.

   Также можно заменить файлы taskrus.htm и taskeng.htm на один файл task.htm с условием (будет вместо двух).
Если русское имя задачи совпадает с английским, то можно просто заменить '<русское_имя_узла(english_node_name)>' на '<русское_имя_узла>#'.
Если не предполагается использовать английского имени, то можно заменить '<русское_имя_узла(english_node_name)>' на '<русское_имя_узла>'
Если Вы устанавливаете задания для английского языка, то файлы условий могут отсутствовать.

  <индекс> - номер задачи, которая будет заменена или номер, под которым задача будет установлена. Архив обрабатывается так, что дополнительные узлы(поддеревья) вставляются в лексикографическом(для строковых имен) или числовом (для числовых имен) порядке в текущее дерево. Аналогично, если создавать дерево в архиве, то внутри этого дерева названия узлов будут отсортированы: в лексикографическом порядке названия, а цифры в числовом порядке.
Дерево может и не существовать, тогда в архиве будет только:
<индекс>
   webfiles
      <любой файл>
      ...
   task.htm
   task.xml
   task.cfg
   1.in
   2.out
   ...
<индекс>
...
И задачи будут загружены списком в текущий раздел. По аналогии, в архиве может быть только дерево каталогов без задач.

Описание файла task.xml.

Файл task.xml должен быть в windows-кодировке и содержать всего один тег:
<task
name="русское имя задачи" 
ename="english task name" 
author="Павел"
cost="100" 
type="1"/>

Свойство author - необязательное. Все остальные необходимо указать.

Если задача имеет только входные тесты, то необходимо добавить свойство tests="in"
Если только выходные тесты, то tests="out"
По умолчанию задача должна иметь одинаковое количество входных и выходных файлов.

Здесь type - тип задачи:
1 - задачи по программированию
2 - HLCCAD, IEESD
3 - шахматные задачи
4 - задачи по математике
5 - Winter
10 - интерактивные ("английские") задачи
15 - Задание на перевод (ручная проверка)
16 - Logic Elements by V.Kulaga
17 - Winter tests by V.Medvedsky

Что надо делать, чтобы загрузились картинки.

Итак, в директории webfiles уже лежат картинки. Чтобы они загрузились на сайт необходимо, чтобы в файлах условий (task.htm или taskrus.htm или taskeng.htm (или если тип задачи - 10 (английский и т.п.) то task.asp)) были ссылки на них. То есть следующее <img src="webfiles/image_name.jpg">. Это же эквивалентно тому, что если Ваш архив еще не запакован и Вы запускаете task.htm(taskrus.htm,taskeng.htm) из тех директорий, которые будут запакованы, то Вы должны увидеть, что картинки в документе есть на своих местах.

Что надо делать, чтобы в условиях были ссылки на тесты.

В корневой директории задания находятся тесты. Чтобы ссылки на них были доступны из условия надо, чтобы в файлах условий(task.htm или taskrus.htm или taskeng.htm) были ссылки на них. То есть что-то вроде следующего <a href="test.in">. Это же эквивалентно тому, что если Ваш архив еще не запакован и Вы запускаете task.htm(taskrus.htm,taskeng.htm) из тех директорий, которые будут запакованы, то ваши ссылки на тесты должны открываться. Отмечу, что таким же образом могут быть загружены картинки, но лучше пользоваться для них описанным выше способом.

Режим замены элементов уже установленных заданий

Используйте этот режим, чтобы сэкономить время, необходимое для изменения уже установленных заданий. В директории задания могут отсутствовать файлы, которые изменять не надо. Единственный файл необходимый в задании - task.xml

Выбор архиватора.

Архивировать необходимо WINRAR-ом или WINZIP-ом.
Главное, чтобы архиватор поддерживал длинные имена. На сайте все распаковывается WINRAR-ом.

Конкретные примеры архивов


Обычные задачи по программированию


Задачи по шахматам


Задачи по проектированию цифровых устройств (HLCCAD)


Задачи для Winter


Математические задачи


Новый формат диалоговых задач

Создание тестов для проекта LE

Создание заданий для проекта WTester