Winter ASM

Конфигурация задания

Конфигурация задания описывается в файле config.xml.

Структура файла:
<?xml version="1.0" encoding="Windows-1251" ?>
<task type="a">       - Корневой тег задания
    <tests>           - Количество тестов
        Txx
    </tests>
    <variables>       - Описание переменных
        <input>       - Описание входных переменных
            <var>     - Переменная #1
                ...
            </var>
            <var>     - Переменная #2
                ...
            </var>
            ...
            <var>     - Переменная #N
              ...
            </var>
        </input>
        <output>      - Описание выходных переменных
            <var>     - Переменная #1
               ...
            </var>
            <var>     - Переменная #2
               ...
            </var>
            ...
            <var>     - Переменная #M
               ...
            </var>
        </output>
    </variables>
</task>
    

Теперь о каждом типе тегов подробнее:

<?xml version="1.0" encoding="Windows-1251" ?> - заголовок xml файла, остается неизменным для любого типа задания.
<task type="a">
...
</task>
Корневой тег задания, содержит в себе все другие теги описания. Имеет атрибут type="a", где a - тип задания Winter ASM.

Тег task включает в себя следующие теги:

<tests>
Txx
</tests>
Данный тег задает количество тестов для прохождения пользователя, где:
Txx - натуральное число, количество тестов.
<variables>
...
</variables>
Этот тег содержит в себе набор описания входных и выходных переменных.
Тег описания переменных variables содержит в себе следующие теги:
<input>
<var>...</var>
...
</input>
Данный тег задает набор описаний входных переменных. Где тег var - описание переменной.
<output>
<var>...</var>
...
</output>
Данный тег задает набор описаний выходных переменных. Где тег var - описание переменной.

Выделяют два типа входных переменных:

Генерируемые входные переменные
<var>
    <name>vName</var>
    <type>vType</type>
    <isVisible>vVis</isVisible>
    <generate>
        <loBound>LO</loBound>
        <hiBound>HI</hiBound>
    </generate>
</var>
Этот тег задает описание генерируемой целочисленной входной переменной, где:
vName - имя переменной.
vType - допустимый тип переменной, подробнее о типах тут.
vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.
LO - нижняя граница генерирования.
HI - верхняя граница генерирования.
<var>
    <name>vName</var>
    <type>vType</type>
    <isVisible>vVis</isVisible>
    <generate>
        <length>len</length>
        <charset>set</charset>
        <delimiter>del</delimter>
    </generate>
</var>
Этот тег задает описание генерируемой строковой входной переменной, где:
vName - имя переменной.
vType - допустимый тип переменной, подробнее о типах тут.
vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.
len - длина строки.
set - набор симовлов для генерирования.
del - строка/символ разделитель строки, может быть пустым.
Предустановленные входные переменные:
<var>
    <name>vName</var>
    <type>vType</type>
    <isVisible>vVis</isVisible>
    <preset>
        <value>value1</value>
        <value>value2</value>
        ...
        <value>valueN</value>
    </preset>
</var>
Данный тег задает описание выходной переменной, где:
vName - имя переменной.
vType - допустимый тип переменной, подробнее о типах тут.
vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.
value1, value2, ..., valueN - допустимые значения переменной.
Формат описания выходных переменных:
<var>
<name>vName</name>
<type>vType</type>
<isVisible>vVis</isVisible>
</var>
Данный тег задает описание выходной переменной, где:
vName - имя переменной.
vType - допустимый тип переменной, подробнее о типах тут.
vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.

Пример файла конфигурации config.xml задания для Winter ASM(ссылка для просмотра файла в браузере):

<?xml version="1.0" encoding="Windows-1251" ?>
<task type="a">
    <tests>3</tests>
    <variables>
        <input>
            <var>
                <name>a</name>
                <type>BYTE</type>
                <isVisible>TRUE</isVisible>
                <generate>
                    <loBound>10</loBound>
                    <hiBound>105</hiBound>
                </generate>
            </var>
        </input>
        <output>
            <var>
                <name>res</name>
                <type>BYTE</type>
                <isVisible>TRUE</isVisible>
            </var>
        </output>
    </variables>
</task>

Типы переменных

Тип переменной Описание Генерация Предустановка
BYTE Целочисленная переменная размером в один байт. + +
WORD Целочисленная переменная размером в два байта. + +
STRING Строковая переменная произвольной длины. + +

Конфигурация тестирования

Конфигурация тестирования описывается в файле task.cfg. Для описания данного типа заданий необходимы лишь некоторые аттрибуты настроек:

Пример файла task.cfg задания для Winter ASM:

TYPE = USERS
CHECKER = 'D:\Delta\CHECKERS\WChecker\wtcheck.cmd task.i86 $MAXPOINT$ $SOLUTION$ >nul'
CHECKFILES = {*.*}
CHECKSUBJECT = FILE
EXTTYPE = 'Пользовательская'

Здесь task.i86 - файл c исходным текстом задания.

XSD схема.
Вернуться к оглавлению
(c) Vitaly Medvedsky, 2006-2007