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

UptoLike

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

23
Вызов процедур группы DataFile не влияет на содержимое включаемых в зада-
ние файлов. Он лишь приводит к копированию этого содержимого в специальный
буфер в оперативной памяти. Созданная копия используется для отображения содер-
жимого файла на экране; это позволяет просматривать начальное содержимое исход-
ного файла и после его преобразования (или даже удаления) в ходе решения задания.
Поскольку при различных тестовых испытаниях учебного задания желательно
не только изменять содержимое исходных файлов, но также и предлагать для обра-
ботки файлы с различными именами, возникает опасность «засорения» диска файла-
ми, созданными при предыдущих тестовых испытаниях. Для того чтобы этого не
произошло, в задачнике предусмотрено автоматическое удаление при завершении
тестового испытания всех файлов, включенных в задание с помощью процедур груп-
пы DataFile. Заметим, что это удаление производится и в случае аварийного заверше-
ния программы, выполняющей учебное задание. Если же исходный файл был удален
самой программой, выполняющей задание, то задачник не будет пытаться удалить
этот файл еще раз.
Иногда (хотя и весьма редкосм., например, задание File4) при решении зада-
ния не требуется отображать содержимое исходного файла на экране. В этом случае в
соответствующей процедуре группы DataFile параметр Y или Y1 надо положить рав-
ным 0. Если исходный файл не требуется ни отображать на экране, ни удалять после
завершения тестового испытания, то в вызове процедуры группы DataFile нет необхо-
димости.
Следует заметить, что формат двоичных строковых файлов является различным
для разных языков программирования. Однако «обязанности» по преобразованию ис-
ходного строкового файла, имеющего формат языка Pascal, то есть описанного как
file of ShortString, в формат текущего языка, установленного для задачника, берет на
себя сам задачник, поэтому учитывать эти особенности при разработке заданий на
строковые файлы не требуется.
procedure ResultFileN(FileName: string; Y, W: integer);
procedure ResultFileR(FileName: string; Y, W: integer);
procedure ResultFileC(FileName: string; Y, W: integer);
procedure ResultFileS(FileName: string; Y, W: integer);
procedure ResultFileT(FileName: string; Y1, Y2: integer);
Процедуры группы ResultFile с именами, завершающимися символами N, R, C,
S, T, позволяют включить в задание в качестве результирующего файла один файл
типа file of integer, file of real, file of char, file of ShortString, text соответственно. К мо-
менту вызова процедуры файл, включаемый в задание, должен быть создан, заполнен
контрольными данными и закрыт. Под контрольными данными понимаются, как
обычно, данные, которые должны содержаться в результирующем файле в случае
правильного решения задания.
Смысл параметров процедур группы ResultFile совпадает со смыслом соответст-
вующих параметров процедур группы DataFile, за исключением того, что теперь но-
мера экранных строк Y, Y1, Y2 относятся к области результирующих данных. Огра-
ничения на параметры для процедур группы ResultFile накладываются те же, что и
для процедур группы DataFile.
В результате выполнения процедуры из группы ResultFile содержимое указанно-
го контрольного файла будет скопировано в специальный буфер в оперативной памя-
ти, после чего контрольный файл будет автоматически удален с диска. В дальней-