Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
07.08.2024
Размер:
2.11 Mб
Скачать
    1. Работа с графикой в Turbo Prolog'e

При решении ряда интеллектуальных задач таких, как семантический разбор предложений, определение подчиненности типовых узлов и блоков в каком-либо техническом изделии или взаимосвязь химических элементов в синтезируемом соединении удобно отображать в некоторой графической форме. Для этих цедей в Turdo Prolog встроены ряд предикатов для работы с графикой.

Не вдаваясь в суть вопроса, а тем более в подробное изучение этих возможностей, рассмотрим небольшой пример. Единственная его цель за­ключается в том, чтобы только дать представление о наличии таких средств в системе Turbo Prolog^.

/* Программа 3.3 */

predicates

fig(integer)

goal

graphics(5,0,31),

fig(3), fig(1), fig(2),

penup,left(180),forward(15000),

pendown,fig(2),

readchar(_).

clauses

о,

%

Треугольник

forward(10000),

forward(10000),

forward(10000).

fig(1) :- pendown,

left(120),

left(120),

% Звезда

fig(2) :-

forward(5000), right(144), forward(5000), right(144), forward(5000), right(144), forward(5000), right(144), forward(5000),

right(144), forward(5000).

% Прямая

fig(3) :- line(10500,5000,19500,16000,2).

Для перехода в графический режим используется предикат graphics( ПараметрРежима, Палитра, Фон), возврат в текстовый режим обеспечивает стандартный предикат text. Возможные значения параметров предиката graphics должны находится в области предопределенных в Turbo Prolog'e констант, которые можно найти в справке по системе.

Вызов предиката dot(Строка,Столбец,Цвет) приводит к размещению точки в заданной позиции экрана. Значения Строка и Столбец - это целые числа от 0 до 31999. Аналогично предикат line(Row1,Col1,Row2,Col2,Color) определяет положение линии на экране.

Наряду с обычными графическими предикатами, в Turbo Prolog^ реа­лизованы и возможности черепашьей графики, при которой в качестве начальной точки перемещения пера принимается центральная точка экра­на. Действие предикатов черепашьей графики определяется в зависимости от следующих факторов:

  • направление движения,

  • рисует перо или нет,

  • цвет пера.

Стандартный предикат pendown (перо вниз) активизирует перо, а пре­дикат penup (перо вверх) приводит его в пассивное состояние. После вызо­ва предиката graphics перо активизировано. Цвет следа определяется пара­метром предиката pencolor.

Рис. 4.6. Результат работы программы.

Движение пера управляется четырьмя стандартными предикатами: forward (вперед), back (назад), right (вправо) и left (влево). Например, пре­дикат forward(Step) показывает, на сколько шагов должно переместиться перо. Чтобы повернуть перо вводится предикат Angle (Угол), где угол из­меряется в градусах. Например, right(144) поворачивает перо вправо на 144 градуса, а left(120) - влево на 120 градусов.

Естественно, по нынешним временам, это не графика. Но сила базового пролога в механизме логического вывода, в возможности использования фактов и правил для описания баз знаний. И в этом плане возможности Turbo Prolog^ не очень-то уступают своим последователям. Тем более, что синтаксис и семантика многих конструкций и стандартных предикатов не­много отличается от Turbo Prolog^.

Но что касается возможностей по реализации готовых проектов, с раз­витым графическим интерфейсом, то здесь отставание налицо от своего сегодняшнего собрата, которым является Visual Prolog.

Соседние файлы в папке Курсовой проект ПРОЛОГ