Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
Описываемые далее отладочные средства появились в версии 4.9 задачника Programming Taskbook. С их помощью можно выводить отладочную информацию непосредственно в окно задачника (в специальный раздел отладки).
Show(S: string);
Отображает текстовую строку S в разделе отладки окна задачника.
Если текущая экранная строка в разделе отладки уже содержит некоторый текст, то строка S снабжается начальным пробелом и приписывается к этому тексту, за исключением случая, когда при таком приписывании размер полученного текста превысит ширину области данных (равную 80 символам). В последнем случае вывод строки S осуществляется с начала следующей экранной строки; если же и в этой ситуации строка S превысит ширину области данных, то строка S будет выведена на нескольких экранных строках, причем разрывы текста будут выполняться по пробельным символам строки S, а при отсутствии пробелов -- при достижении очередного фрагмента строки длины, равной 80.
Строка S может содержать явные команды перехода на новую экранную строку. В качестве таких команд можно использовать или символ с кодом 13 (возврат каретки"), или символ с кодом 10 ("переход на новую строку"), или их комбинацию в указанном порядке (#13#10).
procedure Show([S: string;] A: integer[; W: integer]);
);
Перегруженные варианты процедуры Show, предназначенные для вывода числовых отладочных данных. Использование этих вариантов позволяет максимально упростить действия учащегося, связанные с выводом числовых данных, поскольку избавляет его от необходимости применять стандартные средства языка Pascal, предназначенные для преобразования чисел в их строковые представления.
При вызове приведенных вариантов можно не указывать один или оба параметра, заключенные в квадратные скобки.
Строковый параметр S определяет необязательный комментарий, который указывается перед выводимым числом; если параметр S отсутствует, то комментарий полагается равным пустой строке.
Числовой параметр A определяет выводимое число.
Необязательный целочисленный параметр W определяет ширину поля вывода (т. е. количество экранных позиций, отводимое для вывода числа). Если указанной ширины W поля вывода недостаточно, то значение параметра W игнорируется; в этом случае (а также в случае, если параметр W отсутствует) используется ширина поля вывода, минимально необходимая для отображения данного числа. Если число не занимает всего поля вывода, то оно дополняется слева пробелами (т. е. выравнивается по правой границе поля вывода). В качестве десятичного разделителя для чисел с дробной частью используется точка.
Вещественные числа по умолчанию выводятся в формате с фиксированной точкой и двумя дробными знаками. Изменить формат вывода вещественных чисел можно с помощью вспомогательной процедуры SetPrecision, описываемой далее.
procedure ShowLine([S: string]);
procedure ShowLine([S: string;] A: integer[; W: integer]);
procedure ShowLine([S: string;] A: real[; W: integer]);
Модификации ранее описанных процедур Show; после вывода указанных данных в раздел отладки дополнительно осуществляют автоматический переход на следующую экранную строку. Смысл параметров -- тот же, что и для соответствующих вариантов процедуры Show. Параметры, указанные в квадратных скобках, могут отсутствовать. Если процедура ShowLine вызывается без параметров, то она просто обеспечивает переход на новую экранную строку в разделе отладки.
HideTask;
Вызов данной процедуры обеспечивает автоматическое скрытие всех разделов окна задачника, кроме раздела отладки. Если раздел отладки в окне задачника не отображается (в частности, если программа запущена в демонстрационном режиме), то вызов процедуры HideTask игнорируется. Игнорируются также все повторные вызовы данной процедуры.
Скрыть/восстановить основные разделы окна задачника после его отображения на экране можно также с помощью клавиши пробела или соответствующей команды контекстного меню раздела отладки.
SetPrecision(N: integer);
Процедура предназначена для настройки формата вывода вещественных отладочных данных. Если параметр N положителен, то он определяет количество выводимых дробных разрядов; при этом число выводится в формате с фиксированной точкой. Если параметр N равен нулю, то число выводится в формате с плавающей точкой (экспоненциальном формате); при этом число дробных знаков для экспоненциального формата определяется шириной поля вывода (т. е. параметром W процедуры Show или ShowLine). При отрицательных значениях параметра N выполняется та же настройка, что и при N = 0.
Действие текущей настройки числового формата, определенной процедурой SetPrecision, продолжается до очередного вызова этой процедуры. До первого вызова процедуры SetPrecision вещественные числа выводятся в формате с фиксированной точкой и двумя дробными знаками.
Особенности модуля PT4ExamПри выполнении заданий групп ExamBegin и ExamTaskC, связанных с ЕГЭ по информатике, к программам вместо модуля PT4 подключается модуль PT4Exam. В этом модуле реализована единственная дополнительная процедура Task, обеспечивающая инициализацию задания с указанным именем. Все действия по вводу-выводу должны выполняться с использование стандартных процедур языка Pascal. Отладочные средства модуля PT4 в модуле PT4Exam также недоступны, однако имеется возможность выводить дополнительные данные можно непосредственно в раздел результатов (хотя при этом решение будет считаться ошибочным).
Описанные выше ограничения модуля PT4Exam позволяют максимально приблизить полученное решение к виду, требуемому на экзамене (программа содержит всего две дополнительные конструкции: директиву подключения модуля PT4Exam и оператор вызова процедуры Task, инициализирующей требуемое задание).
Создание шаблона программыВходящий в состав задачника Programming Taskbook программный модуль PT4Load позволяет быстро создавать программы-заготовки для выполнения требуемого задания. Этот модуль можно вызвать непосредственно из среды PascalABC.NET командой меню Модули | Создать шаблон программы" (с данной командой связана также кнопка и клавиатурная комбинация Shift+Ctrl+L).
При запуске данного модуля появляется окно, в котором требуется указать имя задания (в нижней части окна отображаются имена всех имеющихся групп заданий).
При вводе допустимого имени задания (то есть имени группы и порядкового номера, например, Begin1) кнопка Загрузка" становится доступной, и после ее нажатия (или нажатия клавиши Enter) в рабочем каталоге создается файл, содержащий шаблон программы для выполнения выбранного задания (имя файла совпадает с именем задания). Созданная программа-шаблон сразу загружается в редактор PascalABC.NET; ее можно немедленно запустить, чтобы увидеть формулировку задания и пример исходных данных.
Приведем пример шаблона, созданного для задания Begin3 (этот шаблон будет записан в файл Begin3.pas):
uses PT4;
begin
Task('Begin3');
end.
Ввод имени задания для исполнителей Робот и Чертежник имеет следующую особенность: для них надо вначале ввести префикс исполнителя (RB для Робота или DM для Чертежника), после чего ввести имя набора заданий для соответствующего исполнителя и номер этого задания (например, RBa1).
Если введено имя задания, для которого уже имеется файл с программой, то именно этот файл и будет загружен в редактор.
Особая группа PAS (последняя в списке групп заданий) позволяет загрузить в редактор любой файл с расширением .pas из рабочего каталога. При вводе имени этой группы и нажатии кнопки Загрузка" появляется список всех pas-файлов; после выбора любого из этих файлов он немедленно загружается в редактор. Таким образом, использование группы PAS равносильно команде "Файл | Открыть".
В версии 4.11 задачника появилась возможность фильтрации групп в процессе ввода их названий. Фильтрация производится по уже введенным символам. Например, при вводе первого символа m" в списке возможных групп останутся только группы, имена которых начинаются с этого символа; при этом перед списком отфильтрованных групп будет выведен текст "(фильтр)":
Как только в списке останется единственный вариант, будет выведена подсказка о том, что для завершения ввода имени данной группы достаточно нажать пробел:
После нажатия пробела произойдет автоматическое дополнение введенной части имени группы:
Окно задачникаНачиная с версии 4.11, наряду с традиционным режимом с фиксированной компоновкой, в котором для каждого раздела окна выделяется область из 5 экранных строк, можно использовать новый режим с динамической компоновкой, в котором размеры разделов определяются их фактическим содержимым, а размеры окна задачника подстраиваются" под размеры разделов. Режим с динамической компоновкой более удобен при выполнении заданий, содержащих большие наборы исходных и результирующих данных, а также имеющих большие формулировки. В данном разделе вначале дается общее описание окна задачника на примере режима с фиксированной компоновкой, затем описываются дополнения, реализованные в версии 4.11, после чего приводится описание режима с динамической компоновкой.