Пример 5. Задания группы Dynamic из электронного задачника Programming Taskbook.
В данном примере описываются задания из раздела, посвященного указателям и линейным динамическим структурам данных. При вызове задания в динамической памяти создаются все исходные структуры данных (в виде односвязных или двусвязных списков), а указатели на элементы этих структур выступают в качестве входных данных задания. Содержимое всех структур данных отображается в окне задачника в наглядном виде. Созданные программой ученика структуры данных анализируются задачником и после анализа все структуры данных удаляются из памяти.
Пример 6. Задания группы Tree из электронного задачника Programming Taskbook.
В данном примере описываются задания на обработку иерархических структур данных -- деревьев. Подобные структуры, как и линейные динамические структуры, рассмотренные в предыдущем примере, создаются задачником автоматически и в наглядном виде отображаются в его окне. Для доступа к ним также используются указатели.
Пример 7. Задания групп ExamBegin и ExamTaskC из электронного задачника Programming Taskbook.
Пример содержит описание процесса выполнения заданий, связанных с ЕГЭ по информатике. Основной особенностью этих заданий является то, что при их выполнении требуется использовать стандартные процедуры ввода-вывода языка Pascal (а не их специальные модификации, реализованные для задачника Programming Taskbook). Рассматриваются задания из группы ExamBegin, посвященные базовым алгоритмам, и задания из группы ExamTaskC, посвященные обработке сложных наборов данных.
Все примеры, связанные с электронным задачником Programming Taskbook, иллюстрируются изображениями окна задачника в режиме с динамической компоновкой, появившемся в версии 4.11.
Задание Begin3 из электронного задачника Programming Taskbook
Задание Begin3 относится к самой первой группе задачника, посвященной знакомству с вводом-выводом и оператором присваивания. Приведем формулировку этого задания.
Begin3. Даны стороны прямоугольника a и b. Найти его площадь S=a*b и периметр P=2*(a+b).
Далее по шагам опишем сценарий выполнения задания в системе PascalABC.NET.
Шаг 1. Для выполнения заданий из электронного задачника подключим к программе модуль PT4 и вызовем в начале программы процедуру Task, передав ей в качестве параметра имя задания:
usesPT4;
begin
Task('Begin3');
Заметим, что эту программу не обязательно набирать вручную. Для автоматической генерации данной программы выполним следующие действия. Нажмем кнопку
. На экране появится окно программного модуля PT4Load, позволяющего создать программу-заготовку для требуемого задания:
Наберем в поле ввода «Задание» текст Begin3 и нажмем Enter. После этого указанный выше текст сгенерируется автоматически и сохранится в файле Begin3.pas в рабочем каталоге системы PascalABC.NET(по умолчанию это каталог C:\PABCWork.NET).
Запустим программу (нажав клавишу F9), чтобы увидеть на экране текст задания:
Запуск нашей программы был признан ознакомительным (и поэтому правильность решения не анализировалась), так как в ходе ее выполнения не было совершено ни одной операции ввода-вывода.
Шаг 2. Переменные a и b считываются из полей ввода, выделенных желтым цветом, с помощью обычной процедуры read. Закроем окно задачника и изменим программу следующим образом:
usesPT4;
vara, b: integer;
begin
Task('Begin3');
read(a, b);
После запуска этого вариант программы окно задачник примет вид:
Как видим, исходные данные поменялись и появилось сообщение об ошибке -- переменные a и b должны быть объявлены как вещественные. Если запуск программы не является ознакомительным, то в окне задачника появляется раздел с полученными результатами (в нашем случае он не содержит ни одного числа), а также панель индикаторов, показывающих количество введенных и выведенных данных, а также число успешных тестовых запусков программы.
Читать дальше