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

1. Интерфейс и синтаксис логического языка программирования «Пролог-д».

Интерфейс логического языка программирования «Пролог-Д» аналогичен интерфейсу и приемам работы в операционной системе WINDOWS.

Для начала работы с «Пролог-Д» необходимо зайти в папку под названием «Пролог-Д», расположение которой укажет преподаватель. Затем выбрать ярлык Пролога-Д или с помощью программ просмотра диска найти файл с программой prologw.exe и двойным нажатием левой клавиши мыши инициировать его исполнение. На экране появится заставка системы Пролог-Д Windows (рисунок 1).

Рисунок 1 Экран системы Пролог-Д в MS Windows.

Изображенный на рисунке 1.. интерфейс является стандартным для систем, работающих в среде Windows. Управлять системой можно с помощью манипулятора мышь, или с помощью специальной клавиатуры Windows.

Падающее меню Файлы.

Система позволяет работать одновременно с нескольким файлами аналогично работе в ОС WINDOWS.

Элемент меню Исполнение.

Содержит элементы Исполнить, Прервать и Настройки. На рисунке 2 показана панель настроек.

Рисунок 2. Панель настроек режимов исполнения Пролог-программы.

Отмечая или снимая отметки в соответствующих квадратиках панели настроек можно включить и выключить трассировку, вывод вопроса, поручить системе сохранять текст программы при каждом отладочном запуске, а также выбрать, куда направлять вывод в ходе исполнения программы. Мы не будем пока заниматься настройкой исполнения.

Элемент меню Окна.

При выборе этого элемента появляется падающее меню. Выбор элементов меню Каскад, Мозаика, Упорядочить и Свернуть все определяет взаимное расположение окон на экране.

Элемент меню Помощь

При выборе данного элемента меню пользователю предоставляется возможность выбор различных видов помощи, указываемых в падающем меню: помощь о программе и помощь по разделам. Все виды помощи построены по гипертекстовому принципу с использование стандартной подсистемы организации помощи MS Windows(рисунок 3).

Рисунок 3. Подсистема помощи

Синтаксис языка «Пролог-Д» подробно описан в файле помощи - кнопка или окно Помощь, Язык, Синтаксис. Откройте его и просмотрите.

База знаний.

Синтаксис: БазаЗнаний ::= {Предложение}*

Предложение::= Факт ¦ Правило ¦ Комментарий

Комментарий::= "{СимволASCII}*"

База знаний на Прологе-Д состоит из множества фактов и правил.

Факты.

Синтаксис:

Факт ::= Предикат.

Предикат ::= Имя(Аргумент{,Аргумент}*) ¦ Имя

Имя ::= БукваСимвол{Символ}* Константа::= Целое ¦ Словосочетание

В данной версии Пролога-Д длина имени предикатного символа не ограничена. Аргументом может быть любой терм. Аргументов может и не быть. Факты описывают объекты и отношения между ними. Декларативно Факт P означает, что P безусловно истинно. Процедурно означает, что факт P всегда выполнен.

Правила.

Синтаксис: Правило::= Предикат:-Цель{,Цель}*.

Цель ::= Предикат ¦ !

Правило описывает отношения между объектами. Предикат, стоящий слева от знака импликации :- называется головой, а предикаты, стоящие справа - целями или посылками. Правило может иметь любое число целей. (Правило без целей - это факт). Декларативно правило P0:-P1,..,Pn. читается так: P0 истинный, если P1, .. , Pn истинны. Процедурно это значит, что для удовлетворения P0 необходимо последовательно удовлетворить P1, .. , Pn.

Вопрос.

Синтаксис: Вопрос::= ?Цель{,Цель}*. Процедурно вопрос означает исполнение программы на Прологе-Д.

Примечания:

  1. При описании фактов и правил вместо символа “; - точка с запятой“ допускается использование символа “. - точка“.

  2. При описании правил вместо сочетания символов “<-“ допускается использование сочетания символов “:-“.

Будем заканчивать правила и факты точкой, а в качестве знака импликации использовать символ:-

Задание №1.Программа «Родство»

Пусть дано дерево родства:

Записать и инициировать выполнение программы «Родство», построить в тетради модифицированное дерево опровержения.

отец(Иван,Сидор).

отец(Иван,Яков).

отец(Сидор,Макар).

отец(Яков,Платон).

брат(Х,У):-отец(З,Х),отец(З,У),НЕ(РАВНО(Х,У)).

дядя(Х,У):-отец(З,У),брат(Х,З).

?брат(Сидор,Х).

?дядя(У,Х).

Задание №2.Программа «Автомобили»

Записать и инициировать выполнение программы «Автомобили», построить в тетради модифицированное дерево опровержения.

автомобиль( Сузуки, Япония).

автомобиль (Адмирал, Китай).

автомобиль (Жигули, Россия).

автомобиль (Нива, Россия).

автомобиль (Мерседес, Германия).

автомобиль (Ауди, Германия).

российский(х):-автомобиль(х,Россия).

иномарка(з):-автомобиль(з,Япония).

иномарка(з):-автомобиль(з,Германия).

иномарка(з):-автомобиль(з,Китай).

?российский(у).

Задание №3.Программа «Сократ»

Записать и инициировать выполнение программы «Родство», построить в тетради модифицированное дерево опровержения.

человек(сократ).

смертен(х):-человек(х).

?смертен(х).

Задание№4: Самостоятельное создание базы знаний «Мужские древо»

Создать на языке Пролог-Д базу знаний, описывающую мужское древо некоторой семьи. Составьте запросы к базе знаний, позволяющие выявить:

  1. Сына, задав имя отца;

  2. Всех братьев;

  3. Всех внуков и дедов;

  4. Всех племянников и дядей.

  5. Племянников, задав имя дяди.

Дополнительное задание 5: Разберите программу определения наименьшего общего делителя (алгоритм Эвклида).

НОД(х,х,х).

НОД(х,у,ж):-ВЫЧИТАНИЕ(х,у,р),БОЛЬШЕ(х,у),НОД(р,у,ж).

НОД(х,у,ж):-ВЫЧИТАНИЕ(у,х,л),БОЛЬШЕ(у,х),НОД(х,л,ж).

ВЫЧИТАНИЕ(х,у,р):-СЛОЖЕНИЕ(р,у,х).

ВЫЧИТАНИЕ(у,х,л):-СЛОЖЕНИЕ(х,л,у).

?НОД(3,6,ж).