Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОЛОГ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
98.8 Кб
Скачать

43. Использование предикатов для работы с окнами. Использование окон для ввода вывода.

В систему программирования Турбо-Пролог включено пять пре-

дикатов, позволяющих программе управлять окнами различных раз-

меров. Это предикаты makewindow, shiftwindow, removewindow,

clearwindow и gotowindow. С их помощью можно создавать несколь-

ко окон, выполнять ввод и вывод в определенные окна и устанав-

ливать атрибуты окон.

8.1.1. Создание окон предикатом makewindow

Предикат makewindow является основой всех операций над ок-

нами в Турбо-Прологе. Его синтаксическая форма:

makewindow(Window_number,

Screen_attribute,

Frame_attribute,

Frame_string,

Starting_row,

Starting_column,

Window_height,

Window_width)

Значения восьми параметров определяют характеристики окна.

Параметр Window_number, целое число, идентифицирует окно в

программе. Это число используется в качестве ссылки предикатом

gotowindow и др.

Целочисленное значение, присвоенное аргументу

Screen_attribute, определяет цвета символов и фона.

Аргумент Frame_attribute предиката makewindow есть целое

число, значение которого определяет рамку окна. Если значение

атрибута - 0, окно не имеет видимой границы.

Аргумент Frame_string задает метку окна. Например, меткой

окна может быть "Главное Меню","Столбиковая Диаграмма","Вспомо-

гательное Меню" и "Окно Вывода".

Аргумент Starting_row предиката makewindow есть целое чис-

ло, определяющее верхнюю строку (линию) создаваемого окна.

Аргумент Starting_column предиката makewindow есть целое

число, указывающее крайний левый столбец окна.

Аргумент Window_height есть целое число, определяющее ко-

личество строк, занимаемых создаваемым окном.

Аргумент Window_width есть целое число, указывающее число

столбцов, занимаемых окном.

Предикат shiftwindow используется для смены текущего окна

(переключения).

Предикат gotowindow позволяет выполнять быстрое переключе-

ние между двумя окнами, которые не перекрываются.

Предикат clearwindow удаляет из текущего окна все текстовые и

графические изображения.

Предикат removewindow удаляет текущее окно с экрана.

Стандартные предикаты ввода и вывода - read, readint,

readchar, write и nl - также работают с любым текущим окном.

Это означает, что предикаты ввода и вывода работают с любым ок-

ном, которое было сделано текущим при помощи makewindow,

gotowindow или shiftwindow.

По умолчанию предполагается, что курсор расположен в верх-

нем левом углу окна. Однако можно использовать предикат cursor

и помещать курсор в любую позицию текущего окна. Этот пре-

дикат имеет вид:

cursor(Row_number,Column_number).

44. Использование графики в программе. Использование графики черепашки.

Управление графическими режимами и цветами в Турбо-Прологе

осуществляется с помощью параметров, задаваемых в предикатах

graphics и makewindow. Предикат graphics используется для вклю-

чения графического режима CGA или EGA.

Предикаты dot и line используются для изображения объектов

в графическом режиме.

(Picture elements - элементы, из которых состоит рисунок.)

Разница между традиционной графикой, реализуемой с помощью

абсолютных координат, и графикой черепашки. В первом случае все

координаты отсчитываются от угла рамки экрана и, таким образом,

являются абсолютными. Во втором же, координаты каждого следую-

щего положения курсора вычисляются, основываясь на его предыду-

щем положении и, следовательно, являются относительными.

Предикат penup используется тогда, когда движущаяся чере-

пашка не должна оставлять за собой "след". Данный предикат ар-

гументов не имеет. Предикат pendown противоположен по действию

предикату penup и используется в том случае, когда черепашка

должна оставлять за собой "след".

Предикат pencolor устанавливает цвет "следа" черепахи. Он

имеет вид:

pencolor(Color_number)

Предикат forward используется для передвижения черепахи

вперед на указанное расстояние. Он имеет вид:

forward(Step_size)

Предикаты right и left используются для вращения черепахи.

Каждый из этих предикатов имеет аргумент, задающий угол в гра-

дусах. Они имеют вид:

left(Angle)

Предикат penpos используется для того, чтобы поместить

курсор в задаваемую координатами позицию и "прицелить" его в

заданном направлении. Он имеет вид:

penpos(Row,Column,Angle)