Все исходные и результирующие данные-ссылки в заданиях группы ObjDyn и ObjTree имеют тип Node; их ввод и вывод должен осуществляться с помощью функции GetNode и процедуры Put, описанных ниже.
functionGetBoolean: boolean;
functionGetChar: char;
functionGetInt: integer;
functionGetNode: Node;
functionGetReal: real;
functionGetString: string;
Функции обеспечивают ввод исходных данных в программу, выполняющую учебное задание, причем ввод организуется в стиле, характерном для платформы .NET (поскольку в стандартной библиотеке .NET ввод данных всегда выполняется с помощью функций). Эти функции должны вызываться после вызова процедуры Task; в случае их вызова до вызова процедуры Task при запуске программы будет выведено сообщение об ошибке В начале программы не вызвана процедура Task с именем задани я ".
Используемая функция ввода должна соответствовать типу очередного элемента исходных данных; в противном случае выводится сообщение об ошибке Неверно указан тип при вводе исходных данны х " (такое сообщение будет выведено, например, если очередной элемент данных является символом, а для его ввода используется функция GetInt).
При попытке ввести больше исходных данных, чем это предусмотрено в задании, выводится сообщение об ошибке Попытка ввести лишние исходные данны е ". Если исходные данные, необходимые для решения задания, введены не полностью, то выводится сообщение " Введены не все требуемые исходные данные ".
object);
Процедура Put обеспечивает вывод на экран результирующих данных, найденных программой, и их сравнение с контрольными данными (то есть с правильным решением). Как и описанные выше функции группы Get, процедура Put должна вызываться после вызова процедуры Task; в противном случае при запуске программы будет выведено сообщение об ошибке В начале программы не вызвана процедура Task с именем задани я ".
Благодаря использованию параметра-массива, снабженного атрибутом params, при вызове процедуры Put можно указывать произвольное число параметров. Параметры могут иметь тип boolean, integer, real, char, string, Node. В качестве параметров процедуры Put можно указывать не только переменные, но и выражения (в частности, константы соответствующего типа, а также нулевую ссылку nil. Заметим, что нулевые ссылки, как и объекты типа Node, требуется выводить только в заданиях групп ObjDyn и ObjTree. Если в списке параметров указываются параметры недопустимого типа, то при выполнении программы выводится сообщение об ошибке В методе Put указан параметр недопустимого тип а ".
Тип параметра должен не только быть допустимым, но и соответствовать типу очередного элемента результирующих данных; в противном случае выводится сообщение об ошибке Неверно указан тип при выводе результато в ".
Как и в случае функций группы Get, при вызовах процедуры Put программа осуществляет контроль за соответствием количества требуемых и выведенных результирующих данных. Если программа выведет недостаточное или избыточное количество результирующих данных, то после проверки этих данных появится сообщение Выведены не все результирующие данны е " или, соответственно, " Попытка вывести лишние результирующие данные ".
Вывод отладочной информации
Описываемые далее отладочные средства появились в версии 4.9 задачника Programming Taskbook. С их помощью можно выводить отладочную информацию непосредственно в окно задачника (в специальный раздел отладки ).
Show(S: string);
Отображает текстовую строку S в разделе отладки окна задачника.
Если текущая экранная строка в разделе отладки уже содержит некоторый текст, то строка S снабжается начальным пробелом и приписывается к этому тексту, за исключением случая, когда при таком приписывании размер полученного текста превысит ширину области данных (равную 80 символам). В последнем случае вывод строки S осуществляется с начала следующей экранной строки; если же и в этой ситуации строка S превысит ширину области данных, то строка S будет выведена на нескольких экранных строках, причем разрывы текста будут выполняться по пробельным символам строки S, а при отсутствии пробелов -- при достижении очередного фрагмента строки длины, равной 80.
Строка S может содержать явные команды перехода на новую экранную строку. В качестве таких команд можно использовать или символ с кодом 13 (возврат каретки"), или символ с кодом 10 ("переход на новую строку"), или их комбинацию в указанном порядке (#13#10).
Читать дальше