Описание языка PascalABC.NET - W Cat
Шрифт:
Интервал:
Закладка:
Для непараллельных" заданий раздел отладки содержит единственную область вывода. Для заданий по параллельному программированию число областей вывода равно числу параллельных процессов плюс 1; при этом в каждый момент времени в разделе отладки отображается одна из областей. Если областей вывода больше одной, то в нижней части раздела отладки выводится набор ярлычков, позволяющих переключиться на любую из имеющихся областей вывода:
Ярлычки с номерами (от 0 до N-1, где N -- количество процессов) позволяют просмотреть содержимое области вывода, связанной с процессом соответствующего ранга; ярлычок с символом *" позволяет просмотреть область вывода, содержащую объединенный текст всех других областей:
Для переключения на нужную область вывода достаточно щелкнуть мышью на соответствующем ярлычке. Кроме того, для последовательного перебора ярлычков слева направо или справа налево можно использовать комбинации Alt+Right и Alt+Left соответственно (перебор осуществляется циклически). Можно также сразу перейти к нужной области вывода, нажав соответствующую клавишу: для области *" -- клавишу [*], для областей "0"-"9" -- цифровые клавиши 0-9, а для областей "10"-"35" -- буквенные клавиши от A до Z (при выполнении заданий по параллельному программированию максимально возможное число процессов равно 36).
Если в основных разделах окна задачника отсутствуют прокручиваемые элементы или основные разделы являются скрытыми, то дополнительную клавишу Alt в перечисленных выше клавиатурных Alt-комбинациях можно не использовать.
Отладочная информация, получаемая из подчиненных процессов параллельной программы, предварительно сохраняется в специальных временных файлах в каталоге учащегося, поэтому она будет доступна для просмотра, даже если на каком-либо этапе выполнения программы произойдет зависание некоторых ее подчиненных процессов. Отладочная информация, получаемая из главного процесса, выводится непосредственно в раздел отладки.
Количество отладочных строк для каждого процесса не должно превышать 999; если некоторый процесс пытается вывести данные в строку с номером, превышающим 999, то в связанной с этим процессом области отладки выводится сообщение об ошибке, и последующий вывод отладочных данных для этого процесса блокируется. Указанное ограничение позволяет, в частности, избежать проблем, возникающих при бесконечном" выводе отладочной информации из какого-либо зациклившегося подчиненного процесса во временный файл.
Каждая экранная строка, отображаемая в разделе отладки, состоит из служебной области и области данных. Ширина служебной области равна 6 экранным позициям для непараллельных" заданий и 9 позициям для заданий по параллельному программированию. Ширина области данных равна 80 позициям.
Служебная область состоит из следующих частей (см. рисунки, приведенные выше):
область нумерации процессов (только для заданий по параллельному программированию): 2 экранные позиции, отводимые для ранга процесса, и символ |"; область нумерации строк: 3 экранные позиции, отводимые для номера строки данных, после которых следует символ ">" и символ пробела; область признака сообщения об ошибке: одна экранная позиция, в которой может содержаться либо пробел (признак обычного отладочного текста), либо символ "!" (признак сообщения об ошибке). Если в разделе отладки выводится текст, связанный со всеми процессами параллельного приложения (этот текст связан с ярлычком "*"), то нумерация строк для каждого процесса производится независимо.
При переключении между областями вывода, связанными с различными процессами параллельного приложения, сохраняется номер первой отображаемой строки (за исключением ситуации, когда в новой области вывода отсутствует строка с требуемым номером; в этом случае в новой области вывод осуществляется, начиная с первой строки данных). Отмеченная особенность позволяет быстро просмотреть (и сравнить) один и тот же фрагмент отладочных данных для различных процессов.
Содержимое области вывода, отображаемой в разделе отладки, можно копировать в буфер Windows; для этого предназначена стандартная клавиатурная комбинация Ctrl+C и соответствующая команда контекстного меню раздела отладки.
Для вывода данных в раздел отладки предназначены процедуры Show и ShowLine. Описания этих процедур приводятся в разделе, посвященном типам и процедурам модуля PT4.
Возможность использования раздела отладки сохранена и в появившемся в версии 4.11 режиме окна с динамической компоновкой. Как и в окне с фиксированной компоновкой, раздел отладки отображается ниже разделов с заданием, однако в данном случае для всех разделов окна используется общая полоса прокрутки. В окне с динамической компоновкой доступны почти все описанные выше действия по управлению разделом отладки, в частности, настройка размера шрифта в разделе отладки, копирование содержимого раздела отладки в буфер Windows, скрытие разделов окна с заданием.
В режиме с динамической компоновкой отсутствует возможность просмотра областей вывода, связанных с отдельными процессами параллельной программы: раздел отладки всегда содержит объединенный текст, полученный из всех областей. Для просмотра содержимого отдельных областей вывода следует переключиться в режим окна с фиксированной компоновкой, нажав клавишу F4.
Просмотр результатов
Результаты выполнения всех заданий из задачника Programming Taskbook заносятся в специальный файл результатов results.abc, который должен находиться в том каталоге, из которого запускаются программы с заданиями.
Данный файл автоматически создается в рабочем каталоге системы PascalABC.NET (по умолчанию рабочим каталогом является каталог PABCWork.NET, находящийся на диске C). При смене рабочего каталога (это можно сделать с помощью программы настройки задачника PT4Setup) в новом рабочем каталоге также создается файл результатов.
Данные хранятся в файле результатов в зашифрованном виде, поэтому его непосредственный просмотр и корректировка невозможны. Для просмотра содержимого файла результатов предназначен программный модуль PT4Results, который вызывается непосредственно из среды PascalABC.NET командой меню Модули | Просмотреть результаты" (с данной командой связана также кнопка и клавиатурная комбинация Shift+Ctrl+R).
При просмотре файла результатов с помощью модуля PT4Results содержащаяся в нем информация отображается в двух вариантах.
Вариант с полной информацией представляет собой перечень всех запусков программ с учебными заданиями; для каждого запуска указывается имя задания, дата и время запуска, а также результат запуска. Например: = Иванов Петр (C:PABCWork)
Begin1 A27/09 19:07 Выведены не все результирующие данные.
Begin1 A27/09 19:07 Ошибочное решение.--2
Begin1 A27/09 19:07 Задание выполнено!
For1 A27/09 19:07 Ознакомительный запуск.
For1 A27/09 19:08 Выведены не все результирующие данные.
For1 A27/09 19:10 Ошибочное решение.--3
For1 A27/09 19:13 Задание выполнено!
For5 A27/09 19:15 Неверно указан тип при вводе исходных данных.--2
For5 A27/09 19:16 Выведены не все результирующие данные.
For5 A27/09 19:19 Задание выполнено!
For10 A27/09 19:21 Неверно указан тип при вводе исходных данных.
For10 A27/09 19:22 Ошибочное решение.
Буква A перед датой означает, что задание выполнялось в системе PascalABC.NET, а числа в конце некоторых строк указывают на то, что было проведено подряд несколько запусков программы с одинаковым результатом.
Вариант со сводной информацией позволяет быстро узнать время выполнения заданий, количество выполненных и незавершенных заданий, а также получить сводку о выполненных заданиях по каждой группе. Например:
= Иванов Петр (C:PABCWork.NET)
-1- ВРЕМЯ ЗАНЯТИЙ:
27/09(19:07-19:22)[3/16] ВСЕГО: 0:16 [3/16]
-2- ВЫПОЛНЕННЫЕ ЗАДАНИЯ:
Begin1 A27/09 [4] For1 A27/09 [6] For5 A27/09 [4]
-3- НЕЗАВЕРШЕННЫЕ ЗАДАНИЯ:
For10 27/09 [2]
-5- СВОДКА ПО ГРУППАМ ЗАДАНИЙ:
Begin 1 For 2 ВСЕГО: 3
При использовании задачника в системе PascalABC.NET в файл результатов заносится также информация о выполненных заданиях для исполнителей Робот и Чертежник.
Начиная с версии 4.11, программный модуль PT4Results можно вызвать непосредственно из окна задачника, нажав клавишу F2.
Демонстрационный режим
Для запуска задачника в демонстрационном режиме следует при указании имени задания в процедуре Task дополнить это имя символом ?, например:
Task('Begin12?');
Можно также указать символ ? сразу после имени темы, например, 'Begin?'. В этом случае в окне задачника сразу будет отображено последнее задание указанной группы.