Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
Здесь Task ¦-- процедура, содержащаяся в модуле Drawman и вызывающая задание с указанным именем.
Имеются следующие группы заданий для исполнителя Чертежник:
a – вводные задания;
c – цикл с параметром;
cc – вложенные циклы;
p – процедуры без параметров;
pp – процедуры с параметрами.
Для создания произвольного поля размера 20 x 30 используется процедура StandardField без параметров, а для создания поля размера N x M -- процедура Field(N,M).
Что такое проверяемые задания
Задания, проверяемые автоматически, являются мечтой любого преподавателя. Несомненно, что при автоматической проверке можно проверить только сам факт выполнения задания, но не те знания, которые получил ученик. Поэтому крайне желательно, чтобы выполнение проверяемых заданий проходило под контролем преподавателя.
Опыт авторов системы PascalABC.NET и электронного задачника Programming Taskbook свидетельствует, что обучение программированию с помощью проверяемых заданий, сочетаемое с другими методиками (обучение на примерах, поиск ошибок в программах, ручная и автоматическая трассировка, создание творческих программных проектов и т. д.), позволяет существенно ускорить сам процесс обучения и облегчить труд преподавателя.
Итак, что такое проверяемые задания и как их выполнять в системе PascalABC.NET? Для того чтобы это узнать, проще всего ознакомиться с несколькими примерами выполнения типовых заданий.
Пример 1. Задание Begin3 из электронного задачника Programming Taskbook.
Выполняя задание Begin3, следует обратить внимание на одну важную особенность работы с электронным задачником: при его подключении процедуры ввода-вывода read и write начинают работать иначе: процедура read получает исходные данные непосредственно от задачника (который генерирует их, используя датчик случайных чисел и учитывая особенности выполняемого задания), а процедура write пересылает результаты задачнику для проверки их правильности. Исходные данные, подготовленные задачником, и результаты, полученные программой, отображаются в соответствующих разделах окна задачника; ученик не должен заботиться об их форматировании и поясняющих подписях, поскольку за эти действия отвечает сам задачник. Важно учитывать, что при каждом запуске программы учащегося ей будут предлагаться различные варианты исходных данных, поэтому для решения задания необходимо разработать алгоритм, правильно обрабатывающий любые наборы допустимых исходных данных.
Пример 2. Задание a1 для исполнителя Робот.
Исполнитель Робот является бесценным источником заданий для быстрого обучения основным конструкциям программирования школьников средних классов.
Пример 3. Задание String9 из электронного задачника Programming Taskbook.
Данное задание знакомит с особенностями выполнения заданий на обработку символов и строк. Следует обратить внимание на диагностику ошибки, связанной с выводом строки, длина которой превышает длину строки -- правильного решения.
Пример 4. Задание File48 из электронного задачника Programming Taskbook.
Это задание знакомит с особенностями выполнения заданий на обработку типизированных файлов. Исходные файлы при вызове задания создаются на диске, после чего могут обрабатываться по стандартным правилам. Содержимое файлов, созданных в процессе выполнения задания, проверяется электронным задачником; после проверки исходные и результирующие файлы автоматически удаляются. Следует обратить внимание на то, как содержимое файлов отображается в окне задачника, а также на обработку ошибок времени выполнения, возникающих при выполнении заданий. В примере описаны типичные ошибки при работе с файлами и способы их устранения.
Пример 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, передав ей в качестве параметра имя задания:
uses PT4;
begin
Task('Begin3');
Заметим, что эту программу не обязательно набирать вручную. Для автоматической генерации данной программы выполним следующие действия. Нажмем кнопку . На экране появится окно программного модуля PT4Load, позволяющего создать программу-заготовку для требуемого задания:
Наберем в поле ввода «Задание» текст Begin3 и нажмем Enter. После этого указанный выше текст сгенерируется автоматически и сохранится в файле Begin3.pas в рабочем каталоге системы PascalABC.NET (по умолчанию это каталог C:PABCWork.NET).
Запустим программу (нажав клавишу F9), чтобы увидеть на экране текст задания:
Запуск нашей программы был признан ознакомительным (и поэтому правильность решения не анализировалась), так как в ходе ее выполнения не было совершено ни одной операции ввода-вывода.
Шаг 2. Переменные a и b считываются из полей ввода, выделенных желтым цветом, с помощью обычной процедуры read. Закроем окно задачника и изменим программу следующим образом:
uses PT4;
var a, b: integer;
begin
Task('Begin3');
read(a, b);
После запуска этого вариант программы окно задачник примет вид:
Как видим, исходные данные поменялись и появилось сообщение об ошибке -- переменные a и b должны быть объявлены как вещественные. Если запуск программы не является ознакомительным, то в окне задачника появляется раздел с полученными результатами (в нашем случае он не содержит ни одного числа), а также панель индикаторов, показывающих количество введенных и выведенных данных, а также число успешных тестовых запусков программы.
Шаг 3. Исправим тип исходных данных:
uses PT4;
var a, b: real;
begin
Task('Begin3');
read(a, b);
Вновь запустим программу:
Электронный задачник предупреждает, что не выведен результат. Обратите внимание на то, что для сообщений о различных видах ошибок используются разные цвета (например, фиолетовый для ошибок, связанных с несоответствием типов, и оранжевый для ошибок, связанных с вводом/выводом недостаточного числа данных).
Шаг 4. Проведем вычисления и выведем результирующие данные, но в неверном порядке:
uses PT4;
var a, b, S, P: real;
begin
Task('Begin3');
read(a, b);
S := a * b;
P := 2 * (a + b);
write(P, S)
Вновь запустим программу:
Мы видим, что все требуемые исходные данные введены, все результаты выведены, однако полученные результаты имеют неверные значения. В случае ошибочного решения окно задачника всегда содержит раздел с примером верного решения, чтобы можно было сравнить полученные и правильные результаты.