Напомним, что сводной группой называется группа, все задания которой импортированы из уже имеющихся групп. Сводные группы оказываются очень полезными при составлении вариантов проверочных работ, поскольку позволяют дать заданиям новые имена и тем самым затрудняют применение разного рода шпаргалок.
Так как в сводных группах отсутствуют новые задания, при разработке сводных групп для заданий, связанных с ЕГЭ по информатике, достаточно учесть правила 1-4, приведенные в предыдущем пункте.
Будем предполагать, что общие правила разработки новых групп заданий в среде PascalABC.NET читателю известны (см. раздел Примеры").
Следуя правилам именования групп (имя должно состоять из латинских букв и цифр, иметь длину не более 9 символов и не оканчиваться цифрой), а также правилу 1 из предыдущего пункта (наличие префикса Exam), назовем нашу группу ExamDemo. Динамическая библиотека в этом случае должна иметь имя PT4ExamDemo.
Импортируем в группу ExamDemo несколько заданий из обеих групп Exam, входящих в базовый набор. Из группы ExamBegin возьмем задания ExamBegin71 и ExamBegin72, входящие в подгруппу "Преобразование массивов" и связанные перестановкой элементов массива. Из группы ExamTaskC возьмем серию из 12 заданий ExamTaskC25-ExamTaskC36, объединенных общей предметной областью: сведениями об абитуриентах из различных школ.
Учитывая правила подготовки динамических библиотек с группами учебных заданий, а также правила 2 и 3 из предыдущего пункта, получим следующий вариант нашей библиотеки (файл PT4ExamDemo.pas):
>library PT4ExamDemo;
>uses PT4TaskMakerNET;
>procedure InitTask(num: integer);
>begin
>case num of
>1..2: UseTask('ExamBegin', 70 + num);
>3..14: UseTask('ExamTaskC', 22 + num);
>end;
>end;
>procedure inittaskgroup;
>begin
>if (CurrentVersion < '4.10') or
>(CurrentLanguage and (lgPascal or lgCPP) = 0) then
>exit;
>CreateGroup('ExamDemo', '^ЕГЭ по информатике: примеры различных задач',
>'М. Э. Абрамян, 2013', 'qdfedsag33gbg45j', 14, InitTask);
>CommentText('\PПри выполнении заданий данной группы вместо');
>CommentText('специальных операций ввода-вывода, предоставляемых');
>CommentText('задачником, необходимо применять стандартные операции');
>CommentText('используемого языка программирования: процедуры');
>CommentText('\MRead\m/\MReadln\m\:\MWrite\m/\MWriteln\m для языка');
>CommentText('Pascal, потоки \Mcin\m\:\Mcout\m для языка C++.');
>end;
>procedure activate(S: string);
>begin
>ActivateNET(S);
>end;
>begin
>end.
Кратко опишем полученную программу. Вначале к ней подключается модуль PT4TaskMakerNET, в котором реализован конструктор учебных заданий для среды PascalABC.NET. Затем следует описание основной процедуры группы заданий InitTask, определяющей задание по его номеру. Поскольку мы не создавали своих заданий, в данной процедуре используется только стандартная процедура UseTask, позволяющая импортировать задания из имеющихся групп. В нашем случае импортируются задания с номерами 71 и 72 из группы ExamBegin и задания с номерами 25-36 из группы ExamTaskC (всего 14 заданий).