2.3. Описание структуры и назначение файла задания системы ДАЛТ
Файлы задач (ФЗ) разработаны с целью повышения гибкости построения тестовых заданий. Процесс, позволяющий добавлять новые задания и не требующий процесса перекомпиляции исполняемого модуля, является, по сути, единственно правильным подходом к созданию системы дистанционного образования. Используя встроенные компоненты для отображения, анимирования и разбора формул, программа транслятор (в нашем случае это программа клиент RemovedPupil) способна выполнять все необходимые действия по отображению и анимированию механических систем любой сложности. Требуется лишь редкое обновление ее модулей, связанное с появлением новых типов задач.
Поэтому, ФЗ имеют такую конструкцию, которая позволяет быстро и удобно внести необходимые изменения в условие задания или в кротчайшие сроки добавить новую задачу.
2.3.1. Файла задания - описание структуры
Файл задания разбит на две части: одна предназначена для обработки в серверной программе RemovedTeacher и содержит номер задания, эталонные формулы для сверки результатов, баллы за решенные уравнения. Вторая предназначена для отправки клиенту, дальнейшей её обработки программой RemovedPupil и содержит постановку задания, список требуемых выражений и скрипт анимации.
В частях присутствуют разделы, которые начинаются с позиции содержащей имя раздела в треугольных скобках и оканчиваются позицией содержащей имя раздела с символом "/" перед ним. Приведем список всех разделов, оставляемых на сервере:
Раздел VARIABLES - содержит перечисленный список переменных фигурирюущих в задаче. В случае, когда учащийся ошибается и вводит переменную не предусмотренную задачей, ему отсылается сообщение об ошибке ввода.
Раздел COMPARERESULT - содержит перечисленный список эталонных уравнений для сравнения.
Раздел BALLS - содержит перечисленный список баллов за правильно решенные уравнения. Порядок ввода баллов должен соответствовать порядку запрашиваемых результатов из раздела REQUEST.
Раздел COMBALLS - содержит список количества баллов которые необходимо набрать для получения соответствующей оценки. Баллы перечисляются для оценок "отлично", "хорошо" и "удовлетворительно" с лева на право в порядке убывания.
Далее приведем список всех разделов, пересылаемых клиенту:
Раздел NAME - содержит имя задания в списке заданий.
Раздел QUEST - содержит текстовое описание постановки задачи.
Раздел IMAGE - содержит список объектов с координатами которые, после отображения на экран монитора, представляют собой рисунок механической системы.
Раздел REQUEST - содержит список требуемых для ввода уравнений.
Раздел ANIMATE - содержит группу подразделов и, представляя собой анимационных скрипт, предназначен для математического моделирования движения механической системы.
Подраздел VAR - содержит список переменных, участвующих в процессе моделирования системы.
Подраздел FUN - содержит список математических функций, которыми определяется поведение механической системы.
Подраздел OBJ - содержит список объектов, участвующих в процессе моделирования системы.
Подраздел FIRSTOBJ - содержит список объектов, отображаемых в начальный момент времени (t = 0).
Подраздел LASTOBJ - содержит список объектов, отображаемых в конечный момент времени (t = tend).
Пример создания и использования ФЗ будет представлен позже вместе с описанием работы системы ДАЛТ.
3. Примеры использования серверного и клиентского программных модулей системы дистанционного образования ДАЛТ
Для того чтобы лучше понять работу системы, приведем отдельные примеры использования программных модулей. При этом пример создания ФЗ объединим с примером работы программы RemovedPupil. Это позволит наглядно продемонстрировать процесс создания новых тестовых задач.
3.1. Пример использования серверного программного модуля системы дистанционного образования ДАЛТ
Программа RemovedTeacher являет собой серверную часть системы дистанционного обучения. Для его активации необходимо выполнить запускаемый файл RemovedTeacher.exe, после этого программа откроет порт 767 на компьютере и встанет в режим ожидания входящих подключений (рис. 3.1.).
Рис 3.1. Внешний вид сервера удаленного тестирования  
В правой части сервера представлено меню содержащее пункты для добавления новых пользователей и изменения настроек сервера.
При вызове пункта меню "Добавление нового профиля", администратору предлагается форма для ввода нового пользователя и пароля доступа к серверу (рис 3.2).
  
Рис 3.2. Форма ввода нового пользователя  
При нажатии на кнопку "Добавить", имя нового пользователя появляется в списке правой части формы сервера, где располагаются остальные имена пользователей, имеющих доступ к серверу (рис 3.3).
Рис. 3.3 обновленный вид программы  
Вызов пункта "Настройки сервера", открывают форму настроек сервера (рис 3.4).
Рис. 3.4. форма изменения настроек сервера  
В случае изменения настроек, будет показано предупреждение о том, что изменения вступят в силу только после перезапуска программы.
В нижней части формы (рис. 3.1) отображается статистика подключений пользователей к серверу и сообщения возможных ошибок сервера. Также для каждого пользователя ведется отдельный файл статистики, хранящий все действия пользователя в процесс работы.
3.2. Пример использования клиентского программного модуля системы дистанционного образования ДАЛТ
Рассмотрим работу программы RemovedPupil совместно с примером по созданию новой задачи. Пусть постановка задачи будет следующей:
"Шарик `A', массы m в начальный момент времени находится над уровнем стола на высоте h. В начальный момент времени скорость шарика равняется нулю. Шарик начинает свободное падение и требуется:
написать выражение кинетической энергии шарика в момент его удара о стол;
написать выражение, определяющее время за которой шарик достигнет поверхности стола.
Для начала запишем правильные ответы для решения этой задачи:
По закону сохранения механической энергии в консервативной системе величина потенциальной энергии в начальный момент времени равняется величине кинетической энергии в конечный момент времени. Т.е.

П = mgh

Т = mV2

2
получим, что

Т = П = mgh
2) Выражение, определяющее движение шарика, записывается следующим образом:

y(t) = y(0) - gt2

2
отсюда получим, что:

t =   ж
Ц

2h

g
 
Далее покажем, как будет выглядеть ФЗ для этой задачи:
<NAME>DINAMIKA0002</NAME>
<QUEST>
Шарик 'A', массы m в начальный момент времени находится над уровнем стола на высоте h. В начальный момент времени скорость шарика равняется нулю. Шарик начинает свободное падение.
Требуется записать:

1) выражение кинетической энергии шарика в момент его удара о стол;
2) выражение, определяющее время за которой шарик достигнет поверхности стола.
</QUEST>
<IMAGE>
OBJECT_CIRCLE(145,50,10);
GROUND(145,132,120,0);
ARROW(145,50,50,-90);
LINE(130,60,130,132);
TEXT(150,25,А);
TEXT(120,85,h);
TEXT(155,80,mg);
</IMAGE>
<REQUEST>T;t;</REQUEST>
<ANIMATE>
<VAR>Xc=235;Yc=60;R=10;tend=3;Xn=215;Yn=70;Xh=205;Yh=120;Xa=240;Ya;
Xg=250;Yg=100;
</VAR>
<FUN>
Yc=60+g*t*t;
Ya = Yc - 25;
</FUN>
<FIRSTOBJ>
ARROW(Xc,Yc,50,-90);
TEXT(Xg,Yg,"mg");
LINE(Xn,Yn,Xn,160);
TEXT(Xh,Yh,"h");
TEXT(Xa,Ya,"А");
</FIRSTOBJ>
<LASTOBJ>
TEXT(Xa,Ya,"А");
</LASTOBJ>
<OBJ>
OBJECT_CIRCLE(Xc,Yc,R);
GROUND(Xc,160,120,0);
</OBJ>
</ANIMATE>
-
<VARIABLES>h;g;t;m;</VARIABLES>
<COMPARERESULT>
T@=m*g*h;
t@=sqrt(2*h/g);
</COMPARERESULT>
<TIME>20</TIME>
<BALLS>3;5;</BALLS>
<COMBALLS>8;5;3;</COMBALLS>
Заметим, что все выражения перечисляются параметром `;'.
Теперь, как все будет происходить в программе RemovedPupil.
Для запуска программы необходимо выполнить исполняемый файл RemovedPupil.exe, программа запустится и на экране монитора будет отображено приветствие (рис. 3.5).


Рис. 3.5. Внешний вид программы RemovedPupil.

Рис. 3.6 Форма ввода имени пользователя и пароля.
Для получения задания необходимо иметь учетную запись состоящую из имени пользователя и пароля и ввести их в соответствующей форме ввода (рис 3.6.)
Если вход прошел успешно, то будет отображено сообщение (рис. 3.7).
Рис. 3.7 Сообщение об успешном входе в систему.
Далее, для получения списка доступных заданий, следует нажать на кнопку меню "Список заданий", после чего на форме будет отображены доступные задания (рис 3.8).
  
Рис. 3.8 Вид формы с доступными заданиями  
Все задачи разбиты по разделам механики статика, кинематика, динамика. Выберем из списка доступных задач созданную задачу о свободном падении шарика. После чего будет отображена постановка задачи, рисунок и поля ввода формул, требуемых по условию задачи. Также активируется кнопка "Анимация" (рис 3.9).
Рис. 3.9 Вид формы с поставленной задачей.
При нажатии кнопки "Анимация" будет показана форма, моделирующая движение текущей механической системы. Она демонстрирует положение механической системы в начальный момент времени, промежуточный и конечный (рис. 3.10 - 3.11).


Рис. 3.10 Начальное положение механической системы

Рис. 3.11 Промежуточное положение механической системы  



Рис. 3.12 Конечное положение механической системы  
Дальше требуется решить задачу и ввести полученное решение результаты в формы ввода формул (рис3.13).
  
Рис 3.13. Процесс ввода формул  
Нажав на кнопку "Отправить результат", формулы будут отправлены на сервер, где пройдут сверку с эталонными формулами. Сервер пришлет результат в виде сообщения (рис. 3.14).
  
Рис. 3.14. Сообщение о полученных результатах  
В случае, если задача решена, то будет прислано дополнительное сообщение с поставленной за решение оценкой (рис 3.15).
  
Рис. 3.15. Дополнительное сообщение результатах