- •Кафедра Информационных систем и вычислительной техники Национального минерально-сырьевого университета «Горный"
- •Содержание
- •История развития и современное состояние языка prolog
- •Тенденции в истории развития языка Prolog
- •Области применения языка Prolog
- •Современные реализации языка Prolog
- •Поддержка веб-технологий в реализацях Prolog
- •Основы разработки prolog-программ
- •Общие сведения о языке Prolog
- •Понятие факта, правила, запроса и процедуры
- •Механизм сопоставления и поиска с возвратом
- •Основные элементы языка Prolog
- •Среда разработки программ pie и система swi-prolog
- •Основы работы в консоли Prolog
- •Основы работы с программными файлами
- •Справка и помощь в среде swi-Prolog
- •Основы трассировки и отладки в среде pie и swi- Prolog
- •Графические интерфейсы на базе swi-Prolog/xpce
- •Загрузка и запуск программ swi-Prolog'a
- •Использование ярлыков для запуска программ
- •Использование командных и скриптовых сценариев
- •Среда разработки turbo-prolog
- •Структура программы на Turbo Prolog'e
- •Оболочка системы Turbo Prolog
- •Отладка и трассировка программ
- •Работа с простейшими программами в Turbo Prolog'e
- •Работа с графикой в Turbo Prolog'e
- •Среда разработки visual prolog
- •Интегрированная среда разработки
- •Разработка консольного проекта
- •Разработка gui проекта на Visual Prolog'e
- •Prolog — язык логического программирования
- •Системы основанные на знаниях
- •Логические модели и логическое программирование
- •Простейшие конструкции языка предикатов
- •Предикатные формулы
- •Определение правильно построенной формулы
- •Логический вывод
- •6.6.1. Правило резолюции для простых предложений
- •Правило резолюции для сложных предложений
- •Простая резолюция сверху вниз
- •Общая резолюция сверху вниз
- •Унификаторы и примеры унификации
- •Решение задач и извлечение ответа
- •Приложение 1. Запуск Turbo-Prolog в ос Windows 7
- •1. Стандартные предикаты ввода данных.
- •Предикаты преобразования данных
- •Предикаты работы с окнами.
- •Предикаты работы с файлами.
- •Предикаты управления экраном.
- •Предикаты обработки строк.
- •Предикаты работы с графикой.
- •Разные предикаты.
- •Правила вычисление атрибутов экрана.
- •Приложение 3. Пример программы построения дерева синтаксического анализа
- •Интеллектуальные информационные системы prolog - язык разработки интеллектуальных и экспертных систем
Работа с графикой в 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).
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.
