×
Traktatov.net » Описание языка PascalABC.NET » Читать онлайн
Страница 241 из 252 Настройки
их на этом языке будет нельзя.

Реализация сводной группы заданий

Напомним, что сводной группой называется группа, все задания которой импортированы из уже имеющихся групп. Сводные группы оказываются очень полезными при составлении вариантов проверочных работ, поскольку позволяют дать заданиям новые имена и тем самым затрудняют применение разного рода шпаргалок.

Так как в сводных группах отсутствуют новые задания, при разработке сводных групп для заданий, связанных с ЕГЭ по информатике, достаточно учесть правила 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 заданий).