При разработке новых заданий целесообразно объединять их в группы с именами, содержащими, кроме названия темы, дополнительные сведения, например, версию созданной группы и данные об авторе. Однако допустимые имена групп могут содержать не более 9 символов, что является недостаточным для указания дополнительных сведений. С другой стороны, группы, содержащие только новые задания ( библиотечные группы ), вряд ли будут использоваться непосредственно в учебном процессе; более целесообразной будет компоновка этих новых заданий с заданиями из соответствующей базовой группы задачника (и, возможно, с заданиями из других библиотечных групп).
Поэтому при разработке группы, содержащей исключительно новые задания ( библиотечной группы , или библиотеки заданий ) разрешено указывать имя длины более 9 символов (но не более 25).
Библиотечные группы не предназначены для непосредственного использования в учебном процессе. Задания из этих групп можно запускать с помощью процедуры Task, однако они будут отображаться только в демонстрационном режиме (точнее, в режиме просмотра библиотеки заданий", о чем будет свидетельствовать соответствующий текст, указываемый в окне задачника вместо сведений об учащемся). Библиотечные группы не включаются в список групп, отображаемый в модуле PT4Load, однако доступны для просмотра с помощью модуля PT4Demo (в этом модуле библиотечные группы указываются в конце списка групп).
Для применения на занятиях удобно использовать сводные группы , не содержащие реализации новых заданий, а лишь импортирующие наборы заданий из базовых и дополнительных библиотечных групп и компонующие их в порядке, который требуется преподавателю. При импортировании задания из другой группы у него изменяется название и ключ (которые берутся из характеристик сводной группы), однако сохраняются такие характеристики импортируемой группы, как заголовки подгрупп и сведения об авторе. Имена сводных групп должны содержать не более 9 символов.
Структура проекта с описанием группы заданий
В данном разделе описываются правила, которым должен удовлетворять проект (dll-библиотека), содержащий описание новой группы заданий (см. также раздел Примеры").
Каждый проект, реализуемый в виде dll-библиотеки, должен содержать определение единственной группы заданий. Имя библиотеки с группой заданий должно иметь вид PT4< имя группы >< маркер локали >, где < маркер локали > является либо пустой строкой, либо имеет вид _ru или _en. Например, группа TMDemoPas может быть реализована в виде библиотек PT4TMDemoPas.dll, PT4TMDemoPas_ru.dll и PT4TMDemoPas_en.dll. Библиотеки с явно указанным маркером локали используются только в варианте задачника, соответствующем данной локали (ru -- в русском варианте задачника, en -- в английском). Библиотеки, в которых не указан маркер локали, используются в любом варианте задачника (если они не перекрываются библиотекой с явно указанной локалью). Порядок поиска библиотек для требуемой группы следующий: вначале просматривается рабочий каталог учащегося и в нем ищется библиотека с данным именем и явно указанной локалью; если она не найдена, то ищется библиотека с данным именем без маркера локали; если она не найдена, то поиск библиотек (в этом же порядке) выполняется в каталоге Lib системного каталога задачника .
Проект с описанием новой группы должен иметь определенную структуру. Приведем описание структуры проекта, который реализуется на языке Pascal в среде PascalABC.NET:
library PT4MakerDemo;
uses PT4TaskMakerNET;
// процедуры, реализующие конкретные задания
...
procedure InitTask(num: integer);
begin
// в данной процедуре выполняются вызовы вспомогательных процедур,
// реализующих все задания группы; номер задания определяется
// параметром num; для определения процедуры, соответствующей
// требуемому номеру, обычно используется оператор case
...
end;
procedure inittaskgroup;
begin
// вспомогательная процедура, в которой выполняется вызов стартовой
// процедуры CreateGroup и могут вызываться процедуры, связанные
// с добавлением комментариев (преамбул) для группы и ее подгрупп.
// Все буквы в ее имени должны быть строчными
CreateGroup('TMDemoAbc', 'Примеры различных задач (конструктор для языка PascalABC.NET)',
'М. Э. Абрамян, 2013', 'qwqfsdf13dfttd', 8, InitTask);
Читать дальше