Примечание. При выводе краткого описания группы в программных модулях PT4Demo и PT4Load первый символ этого описания преобразуется к нижнему регистру (поскольку текст описания располагается в этих модулях после двоеточия). Если понижать регистр первого символа не следует (в случае, если этот символ является началом фамилии или некоторой аббревиатуры, например, ЕГЭ"), то в начале краткого описания группы надо указать дополнительный символ-метку "^" (шапочка). Пример использования символа "^" приводится в разделе "Разработка групп заданий, связанных с ЕГЭ по информатике".
Для определения характеристик новой группы необходимо вызвать процедуру CreateGroup, указав эти характеристики в качестве параметров:
procedureCreateGroup(GroupName, GroupDescription, GroupAuthor,
GroupKey: string; TaskCount: integer; InitTaskProc: TInitTaskProc);
Тип TInitTaskProc определяется следующим образом:
typeTInitTaskProc = procedure(n: integer);
Процедуру CreateGroup необходимо вызывать в процедуре inittaskgroup, которая должна экспортироваться библиотекой, содержащей данную группу.
Процедура CreateGroup контролирует правильность переданных ей параметров и в случае ошибки выводит на экран информационное окно с ее описанием. В подобной ситуации все последующие действия, связанные с определением данной группы, игнорируются, и группа не включается в список доступных для использования групп заданий. Перечислим некоторые из возможных ошибок:
Базовые константы и процедуры для создания новых заданий
в процедуре inittaskgroup определяется более одной группы заданий (в этом случае определения всех групп, кроме первой, игнорируются); имя группы не соответствует имени dll-файла, в котором данная группа определяется (напомним, что имя dll-файла должно иметь вид PT4< имя группы > или PT4< имя группы >< маркер локали >); при реализации группы в виде pcu-файла данное ограничение отсутствует; к задачнику Programming Taskbook уже подключена группа с указанным именем; имя группы не является допустимым (в частности, совпадает с именем одной из базовых групп задачника); не указано краткое описание группы; не указан ключ группы; количество заданий не принадлежит диапазону 1-999; процедурная переменная InitTaskProc содержит нулевую ссылку.
const
xCenter = 0;
xLeft = 100;
xRight = 200;
Эти константы, отвечают за выравнивание данных по горизонтали: константа xCenter центрирует текст, связанный с элементом данных, относительно всей экранной строки, константы xLeft и xRight центрируют текст в пределах левой и правой половины экранной строки соответственно. Используются в качестве параметра X в процедурах групп Data и Result, а также в процедуре TaskText.
procedureCreateTask( [SubgroupName: string ]);
Данная процедура должна быть вызвана первой при инициализации нового задания; в качестве необязательного параметра SubgroupName указывается заголовок подгруппы , в которую включается задание (задания целесообразно разбивать на подгруппы, если их количество в группе является достаточно большим; в случае деления группы на подгруппы каждое задание рекомендуется связывать с какой-либо подгруппой). Если параметр является пустой строкой или отсутствует, то задание не связывается с какой-либо подгруппой. В окне задачника заголовок подгруппы выводится над именем задания; если подгруппа для данного задания не указана, то выводится краткое описание всей группы (определенное в параметре GroupDescription процедуры CreateGroup). При выводе краткого описания группы или заголовка подгруппы в окне задачника его текст преобразуется к верхнему регистру.
В версии 4.9 конструктора учебных заданий к первоначальным двум вариантам процедуры CreateTask были добавлены еще два варианта, предназначенные для инициализации задания по параллельному MPI-программированию.
procedureTaskText(S: string [; X, Y: integer ]);
Данная процедура добавляет к формулировке задания строку S, которая располагается в строке Y (от 1 до 5) раздела формулировки задания, начиная с позиции X. Позиции нумеруются от 1; при указании параметра X следует учитывать, что ширина раздела формулировок (как и разделов исходных и результирующих данных) равна 78 символам. Кроме явного указания значения позиции X можно использовать специальные константы xCenter, xLeft и xRight; в частности, если параметр X равен 0, то строка центрируется. Рекомендуется всегда центрировать строки в формулировках заданий (как это делается в базовых группах, входящих в задачник); явное указание позиции X следует использовать лишь при выводе многострочных формул и в других случаях специального выравнивания текста. Все строки должны добавляться к формулировке последовательно ; при этом если формулировка содержит 1 строку, то ее следует располагать на экранной строке с номером 3, если 2 строки -- на экранных строках 2 и 4, если 3 строки -- на экранных строках 2, 3 и 4, если 4 строки -- на экранных строках с номерами от 2 до 5 (именно так оформляются задания в базовых группах задачника). Нарушение порядка добавления строк не проявится при отображении формулировки в окне задачника, однако приведет к неверному выводу формулировки в html-описании группы.
Читать дальше