Параметры проверки
Также система позволяет ставить задачи в общем виде – пользователь при этом должен ввести формулу, зависящую от нескольких параметров. Система не сравнивает данную формулу с каким-то шаблоном, а вычисляет ее значения на различных наборах параметров, и если результат вычисления для всех наборов параметров совпадает с решением системы, то задача считается решенной.
Описание задачи
Задает формальное описание задачи с использованием стандартных примитивов – функций, предикатов, констант, множеств. На основе данного описания, используя текущие параметры генерации и проверки, система решает задачу.
Формат описания
Задача описывается с использованием технологии XML. Каждая часть задачи, а также каждый примитив представляет собой отдельный xml-элемент. Данный генератор задач позволяет при составлении задачи не работать с текстовым файлом напрямую, а использовать графический интерфейс, представляющий задачу в компактной форме – в виде дерева задачи.
Работа с общим редактором задач
Создание элемента
Формат XML предполагает наличие одного главного корневого элемента, в который иерархически вложены все остальные, – корневым элементом в описании задачи является task, который автоматически создается при создании новой задачи. Так что все вновь создаваемые элементы имеют родителя. Процесс создания нового элемента в данном генераторе задач - это просто добавление нового элемента к уже существующему родителю. Достаточно выбрать элемент в дереве задачи и по нажатию правой кнопки откроется меню, в котором можно выбрать новый элемент – причем можно выбрать только те, наличие которых допускает родитель – выбор остальных блокируется.
Параметры элемента (Панель параметры)
Выбрав в дереве задачи элемент, во вкладке “Атрибуты” перечисляются все атрибуты, которые можно указать элементу, например для множества NumericSet (отрезок числовой прямой) – это будут первый и последний элементы, а для функции проекции это будет ось проекции. Для параметров доступна вкладка «параметры», в которой перечисляются все значения для выбранного параметра и в которой их можно добавлять. Если элемент допускает наличие в нем текстового содержание (например, элемент, содержащий условие задачи – description), то становится доступной вкладка “Текст”.
Элементы
Каждый элемент задачи (в том числе и все примитивы) представляется отдельным элементом в xml-файле либо отдельным элементом в дереве задачи.
Корневой элемент
Имя элемента: task.
Атрибуты: title – название задачи.
Описание: корневой элемент в описании задачи, содержит все остальные.
Условие
Имя элемента: description.
Описание: в этом элементе описывается условие задачи.
Параметры генерации
Имя элементы: description-params.
Описание: в этом элементе описываются все параметры, ответственные за генерацию условия.
Параметры проверки
Имя элементы: verifier-params.
Описание: в этом элементе описываются все параметры, ответственные за проверку решения.
Параметр
Имя элемента: param.
Атрибуты: name – имя параметра.
Описание: описывает один из параметров генерации или проверки. Для ссылки на значение параметра используется ${имя_параметра}. Вместо выражения ${имя_параметра} будет подставлено текущее значение параметра. Все значения данного параметра описываются во вложенных элементах – value. У элемента value есть атрибут text, значение которого может использоваться для генерации условия, для получения значения этого атрибута для текущего значения параметра достаточно использовать выражение ${имя_параметра-text}.
Формальное описание задачи
Имя элемента: mathDescription.
Описание: содержит формальное описание задачи, имеет два дочерних элемента sourceSet и verifier.
Описание исходного множества
Имя элемента: sourceSet.
Описание: содержит формальное описание пространства событий (в задачах по комбинаторике). Само пространство строится с помощью элемента описания множества set.
Множество
Имя элемента: set.
Атрибуты: type – задает тип множества: множество перестановок, размещений, комбинаций, декартово произведение, отрезок числовой прямой.
Описание: Элемент, описывающий множество, допускает наличие вложенных элементов set (например, для декартового произведения множеств указываются множества, на которых оно строится).
Верификатор
Имя элемента: verifier.
Атрибуты: type – задает тип верификатора.
Описание: содержит формальное описание функции, используемой при решении задачи (функция описывается элементом function). Например, верификатор SimpleVerifier подсчитывает количество элементов из исходного множества, удовлетворяющих описанному условию (в данном случае используется логическая функция «подходит / не подходит») и сверяет его с ответом пользователя. А верификатор AnswerVerifier проверяет совпадение ответа пользователя со значением функции.
Функция
Имя элемента: function.
Атрибуты: type – задает тип функции.
Описание: Используется для составления функций любой сложности, допускает рекурсивное вложение элементов function. Система предоставляет большой выбор функций, как простейших (логических и арифметических), так и более сложных.
Пример задачи
Ниже приведена одна и та же задача, описанная с помощью xml и с помощью дерева задачи.
Дерево задачи

Xml-описание
<?xml version="1.0" encoding="windows-1251"?>
<task title="Счастливые билеты">
<description-params>
<param name="length">
<value text="двух">4</value>
<value text="трех">6</value>
</param>
<param name="base">
<value text="девяти">9</value>
<value text="четырех ">4</value>
</param>
</description-params>
<description>
<![CDATA[Трамвайный билет называется счастливым по-питерски,
если сумма первых ${length-text} цифр равна сумме последних
${length-text} цифр. Трамвайный билет называется счастливым
по-московски, если сумма его цифр, стоящих на четных местах,
равна сумме цифр, стоящих на нечетных местах.
Сколько существует билетов, счастливых и по питерски и по московски,
если для записи билета используются цифры от нуля до ${base-text}?]]>
</description>
<mathDescription>
<sourceSet>
<set type="DecartSet">
<for name="i" first="1" last="${length}" inc="1">
<set type="NumericSet" first="0" last="${base}"/>
</for>
</set>
</sourceSet>
<verifier type="SimpleVerifier">
<function type="And">
<function type="Equals">
<function type="Add">
<for name="i" first="1" last="${length}/2" inc="1">
<function type="Projection" axis="${i}">
<current-set-element/>
</function>
</for>
</function>
<function type="Add">
<for name="i" first="${length}/2+1" last="${length}" inc="1">
<function type="Projection" axis="${i}">
<current-set-element/>
</function>
</for>
</function>
</function>
<function type="Equals">
<function type="Add">
<for name="i" first="1" last="${length}" inc="2">
<function type="Projection" axis="${i}">
<current-set-element/>
</function>
</for>
</function>
<function type="Add">
<for name="i" first="2" last="${length}" inc="2">
<function type="Projection" axis="${i}">
<current-set-element/>
</function>
</for>
</function>
</function>
</function>
</verifier>
</mathDescription>
</task>

ИНСТРУКЦИЯ ПО УСТАНОВКЕ ПРОДУКТА
Для запуска необходимо:
1) установить jre (java runtime environment) или jdk (java development kit) версии не ниже 1.5.0 (http://, http:///j2se/1.5.0/download. html).
2) Запустить программу, дважды «кликнув» на файл startup. jar или запустив скрипт run. bat
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


