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

UptoLike

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

14
возможна как для чисел, так и для строк (если программа учащегося выведет число
или строку, размер которых больше требуемого). Для того чтобы в этой ситуации
увидеть полный текст всех подобных элементов результирующих данных, следует
переместить курсор мыши в раздел результатов в окне задачника; через 1–2 секунды
полный текст всех данных, размер которых превышает допустимый, появится во
всплывающей подсказке.
Порядок вызова процедур группы Result важен, так как он соответствует поряд-
ку, в котором результирующие данные, полученные программой учащегося, должны
передаваться задачнику для проверки их правильности. Поэтому, как и для исходных
данных, для набора результирующих данных должен соблюдаться стандартный поря-
док их размещения: сверху вниз по строкам и слева направо в каждой строке.
В параметре Cmt, содержащем текст комментария к определяемому элементу ре-
зультирующих данных, можно использовать управляющие последовательности.
Проверка правильности результатов, полученных программой учащегося, вы-
полняется путем сравнения текста, изображающего эти результаты в окне задачника,
с текстом, изображающим соответствующие контрольные данные. Это означает, в ча-
стности, что вычислительная погрешность, возникающая при обработке веществен-
ных чисел, не будет влиять на проверку правильности, если при отображении этих
чисел не используется слишком большое количество дробных знаков (напомним, что
число дробных знаков можно задать с помощью процедуры SetPrecision).
В любом задании должен быть задан хотя бы один элемент результирующих
данных; в противном случае выводится сообщение об ошибке.
procedure ResultComment(Cmt: string; X, Y: integer);
Процедура позволяет добавлять в раздел результатов комментарий Cmt, не свя-
занный с каким-либо элементом результирующих данных. Этот комментарий исполь-
зует ресурсы, выделяемые для хранения результирующих данных, поэтому общее
число подобных комментариев, вместе с общим числом результирующих данных, не
должно превосходить 200.
procedure SetPrecision(N: integer);
Процедура устанавливает количество N дробных знаков, используемое в даль-
нейшем при выводе всех элементов данных вещественного типа. По умолчанию ко-
личество дробных знаков равно 2. Если оно равно 0, то вещественные данные ото-
бражаются в экспоненциальном формате, а количество дробных знаков определяется
шириной поля вывода, указанной для данного числа. Действие текущей настройки,
определенной процедурой SetPrecision, продолжается до очередного вызова этой про-
цедуры, однако не распространяется на другие учебные задания текущей группы. За-
метим, что при отображении вещественных чисел в качестве десятичного разделителя
всегда используется точка.
procedure SetRequiredDataCount(N: integer);
Процедура определяет минимально необходимое количество N элементов ис-
ходных данных, требуемое для правильного решения задания при текущем наборе
исходных данных. По умолчанию это количество равно общему числу всех указан-
ных в задании исходных данных. Если параметр N имеет нулевое или отрицательное
значение, то выводится сообщение об ошибке; если значение параметра превышает
общее число элементов исходных данных, то сообщение об ошибке не выводится, а
требуемое количество исходных данных полагается равным их общему количеству.