Конструктор учебных заданий для электронного задачника Programming Taskbook - 24 стр.

UptoLike

Составители: 

24
шем, при выполнении задания, файл с таким же именем должен быть создан и запол-
нен требуемыми данными программой самого учащегося. Контрольные данные, запи-
санные в оперативную память процедурой из группы ResultFile, используются при
проверке правильности содержимого результирующего файла (созданного в ходе вы-
полнения задания). Кроме того, эти контрольные данные могут выводиться на экран в
качестве примера правильного решения. Имя файла и другие параметры, указанные в
процедуре ResultFile, будут также использоваться для поиска и отображения на экра-
не результирующего файла, созданного при выполнении задания. Все результирую-
щие файлы, созданные в ходе решения задания, автоматически удаляются с диска при
завершении программы. Подобное удаление производится и при аварийном заверше-
нии программы; если же результирующий файл не создан, то попытка его удалить не
производится.
Как и в случае процедур группы DataFile, отображение некоторых результи-
рующих файлов можно отключить, положив в соответствующих процедурах
ResultFile значения параметров Y или Y1 равными 0 (см., например, задание File1).
Это, естественно, не отменит сравнения содержимого результирующих файлов с кон-
трольными данными и удаления результирующих файлов при завершении програм-
мы.
3.2. Процедуры для включения в задание указателей
и динамических структур данных
В учебные задания можно включать указатели только одного определенного в
задачнике типа:
type
PNode = ^TNode;
TNode = record
Data : integer;
Next : PNode;
Prev : PNode;
Left: PNode;
Right: PNode;
Parent: PNode;
end;
Этот тип позволяет формировать одно- и двусвязные линейные динамические
структуры (при этом используются поля связи Next и Prev), бинарные деревья и дере-
вья общего вида (при этом используются поля связи Left и Right), а также бинарные
деревья с обратной связью (при этом используются поля связи Left, Right и Parent).
Поскольку значение адреса, хранящегося в указателе, не представляет интереса (и,
кроме того, может изменяться при каждом тестовом запуске программы), на экране
отображается не оно, а условное обозначение указателя «ptr», снабженное обязатель-
ным комментарием, например,
P
1
= ptr, P
X
= ptr и т. д. В задании можно исполь-
зовать до 36 различных указателей, которым присваиваются номера от 0 до 35. Указа-
тели с номерами от 0 до 9 имеют комментарии с цифровым индексом (P
0
–P
9
), а указа-
тели с номерами от 10 до 35 — с буквенным (P
A
–P
Z
). Если некоторый указатель имеет
значение nil, то вместо текста «ptr» отображается текст «nil» (или аналогичный текст
с обозначением нулевого указателя, соответствующего текущему языку программи-
рования), например,
P
1
= nil для языка Pascal, P
1
= NULL для языка C++. Коммен-