Читайте также:
|
|
Для отладки работы программы используется трассировка, позволяющая просмотреть траекторию работы программы. Для этого необходимо использовать директиву trace, слово trace ставится перед Predicates или domains. Она приостанавливает выполнение программы после каждой попытки удовлетворить (согласовать) подцель. В окно трассировки печатается значение переменной. Для продолжения программы нажимается F10, для остановки – ECS.
Если требуется трассировать только предикаты, то их перечисляют после trace. При ошибке курсор останавливается на начале того предиката, где случилась ошибка.
Информация, выдаваемая во время трассировки.
Ключевое слово | Пояснение |
CALL | Выводится всякий раз, когда осуществляется обращение к заданному предикату. Его имя и значение параметров отображается в окне трассировки. |
RETURN | Возвращаемое значение отображается в окне трассировки, когда заданный предикат выполнен и возвращает управление вызванному его предикату. Если имеются дополнительные предложения, которым сопоставляются входные параметры, символ * показывает, что данное предложение является точкой возврата. |
FAIL | Если рассматриваемый предикат не согласуется, то выводится ключевое слово, за которым следует имя соответствующего предиката. |
REDO | Указывает, что осуществляется возврат назад. Имя предиката, которое будет рассматриваться следующим, вместе со значением параметров выводится в окно трассировки |
7.11. Графика в Turbo Prolog’е
Графика в Турбо Прологе позволяет создавать окна различного цвета, определять цвет текста и фона, переключать ввод и вывод из одного окна в другое, рисовать рисунки. Для работы с окнами, которые могут быть созданы как в текстовом, так и в графическом режиме имеются встроенные предикаты:
Makewindow (сделать окно) – открыть окно,
Shiftwindow (переключиться. на окно) – сменить окно,
Gotowindow (переключиться. на окно) – выбор окна,
Removewindow (удалить)
Clearwindow (очистить)
Окно создается предикатом Makewindow (номер окна, атрибуты экрана, атрибут рамки, строка рамки, начальная строка, начальный столбец, высота окна, ширина окна). Первый аргумент используется при активизации окна и перехода между окнами, а второй определяет цвет символов и фона в зависимости от типа монитора, указанное число получается сложением номера цвета текста с номером текста фона.
Цвет текста:
0 – черный 8 – серый
1 – синий 9 – светло-синий
2 – зеленый 10 – светло-зеленый
3 – голубой 11 – светло-голубой
4 – красный 12 – светло-красный
5 – фиолетовый 13 – светло-фиолетовый
6 – коричневый 14 - желтый
7 – белый 15 – интенсивно-белый
Цвет фона:
0 – черный
16 – синий
32 – голубой
48 – зеленый
64 – красный
80 – фиолетовый
96 – коричневый
112 – белый
Третий аргумент определяет цвет рамки:
0 – нет рамки
1- синий
2 3 4 5 6 7 – такие же, как и цвет текста
8 – коричневый
-1 – мерцающее белое
-2 – мерцающее желтое
-3 – мерцающее фиолетовое
-4 – мерцающее красное
Четвертый аргумент определяет имя окна, т.е. текст в середине заголовка окна.
Пятый и шестой аргументы – максимальная верхняя строка (максимально 24) и крайний слева столбец (максимально-79).
Седьмой аргумент – число строк в окне (максимум 25).
Восьмой аргумент – число столбцов в окне (максимум 80).
Примеры:
1) Makewindow (1,7,7, «Fullscreen», 0,0,25,80) весь экран
2) Makewindow (2, 4, 1, «меню», 4, 20, 16, 40)
Shiftwindow (номер) – сделать активным окно номера N
Gotowindow (N окна) – переключение между неперекрывающимися окнами
Clearwindow – очистка текущего окна
Removewindow – удаление текущего окна
Стандартные операторы ввода, вывода read, readint, readchar, write работают с текущим окном. Для позиционирования вывода используется оператор Cursor (N строки, N столбца), при этом номера определяются относительно верхней строки и левого столбца.
Для приостановки работы программы и ожидания ввода с клавиатуры используется оператор readchar(_).
Задания для самостоятельной работы.
1. Создать окно с белыми символами на черном фоне.
2. Вывести текст в окно.
3. Удалить текст из окна.
4. Удалить окно.
Дата добавления: 2015-09-06; просмотров: 88 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Методы организации рекурсии | | | Создание графического режима. |