Арифметика и сравнение в языке Пролог.



Федеральное государственное образовательное учреждение высшего профессионального образования

«Пермская государственная сельскохозяйственная академия

имени академика. Д.Н. Прянишникова»

 

 

  “УТВЕРЖДАЮ”

Заведующий кафедрой ИС

                            А. Козлов

“ ….. “ .......................... 200… г. 

 

Для преподавателя

 

Дисциплина

Интеллектуальные ИНФОРМАЦИОННЫЕ системы

 

 

Лабораторная работа №3

 

Тема: язык логического программирования «Пролог-Д»

Время: 4 часа.

Место: компьютерный класс

Учебные вопросы:

.

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

2.  Арифметика и сравнение в языке «Пролог – Д».

3. Создание базы знаний.

Литература и материальное обеспечение:

1. Методическая разработка по теме занятия.

2. Класс ПЭВМ.

3. Мультимедийный проектор, экран.

4. Язык программирования «Пролог-Д».

 

Методические рекомендации обсуждены и одобрены на заседании методической комиссии ФПИ.

Протокол № .... от “ ... “............ 200..г.


Руководство к лабораторной работе №3

«Пролог-Д».

 

Система Пролог-Д для Windows. На дискете (в архиве, в рабочей директории) должны быть файлы:

1. PROLOGW.EXE – транслятор (интерпретатор),

2. PROLOGW.HLP - справка,

3. BORLANDMM.DLL – системная библиотека,

4. CP3245MT.DLL – системная библиотека.

 

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

 

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

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

 

 

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

 

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

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

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

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

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

 

 

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

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

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

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

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

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

 

 

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

База знаний.

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

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

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

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

Факты.

Синтаксис:

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

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

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

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

Правила.

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

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

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

 

Вопрос.

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

 

Примечания:

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

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

 

 

Арифметика и сравнение в языке Пролог.

 

В языке пролог имеются встроенные предикаты, в частности предикаты арифметики и сравнения. Их описание находится в файле помощи – кнопка  или окно Помощь, Язык, Встроенные предикаты,Арифметика. Найдите, откройте и просмотрите его.

Для освоения принципов работы со встроенными арифметическими предикатами и встроенными предикатами сравнения рассмотрим следующие задачи.

Например, выражение Z = X*Y запишется на Прологе в следующем виде :

?УМНОЖЕНИЕ(X,Y,Z).

Задача 1. На Прологе-Д необходимо описать вычисление объема параллелепипеда высотой h, в основании которого прямоугольник, имеющий стороны длиной a и b.

Известна формула определения объема параллелепипеда:

Vпар=a*b*h.

Предикат, который будет выполнен, если будет вычислен объем параллелепипеда, должен иметь четыре аргумента - длины сторон a и b, высоту h и величину объема. Целесообразно, чтобы Имя предиката отражало его назначение - этому критерию удовлетворит имя объем. Данный предикат будет составным:

 

обьем(a,b,h,V):-УМНОЖЕНИЕ(a,b,S),УМНОЖЕНИЕ(S,h,V).

 

К базе знаний можно задать вопросы:

?обьем(10,20,5,V).

ответ системы Пролог-Д:

V=1000.

Как и прежде предикат объем обратим, это означает, что используя это описание можно вычислить не только объем по заданным сторонам и высоте, но и любую (одну) сторону или высоту по заданным высоте, стороне и объему.

Задайте вопрос: ?обьем(а,20,5,1000). Ответ : а = 10.

 

Задача2: Если необходимо вычислить число x=2*3+1, то для этого достаточно набрать на клавиатуре вопрос:

 

?УМНОЖЕНИЕ(2,3,1,x). (<Enter>)

ответ системы:

x=7

 

Реализация деления x=z/y.

ДЕЛЕНИЕ(z,y,x):-УМНОЖЕНИЕ(x,y,z).

Реализация вычитания x=y-z.

ВЫЧИТАНИЕ(y,z,x):-СЛОЖЕНИЕ(x,z,y).

 

В данных случаях во встроенных предикатах переменные как бы перевернуты на оборот.

Задание:

1. Напишите правило и вопрос для вычисления площади круга.

2. Вычислите выражение «x=8/2».

3. Вычислите выражение «x=10 - 7».

4. Вычислите выражение «x=5*2*3+2».

Примечание: используйте файл помощи – кнопка  или окно Помощь, Язык, Встроенные предикаты,Арифметика , … .

Результат представить преподавателю.

 

А теперь несложный пример, иллюстрирующий применение БОЛЬШЕ и НЕ.

Задача: Опишите на языке Пролог-Д вычисление функции Хевисайда, определяемую формулой:

            | 0, если x<0.

h(x)=   | 0, если x=0.

            | 1, если x>0.

База знаний должна содержать описание предиката меньше и равно, который выше уже был описаны, предикат, выполняющийся при вычислении функции Хевисайда, будет называться ХЕВИСАЙД. Этот предикат будет иметь два аргумента, первый это аргумент функции, а второй ее значение. Предикат ХЕВИСАЙД определяется через два альтернативных описания для всех значений X.

 

МИР(X,Y):-НЕ(БОЛЬШЕ(X,Y).

ХЕВИСАЙД(X,0):-МИР(X,0).

ХЕВИСАЙД(X,1):-БОЛЬШЕ(X,0).

 

К этой базе знаний можно задать различные вопросы.

?ХЕВИСАЙД(20,X).

ответ системы Пролог-Д:

X=1.

Задание: задать базе знаний вопросы для получения всех вариантов ответов для формулы Хевисайда.

Упражнение: Попробуйте набрать вопрос:

?УМНОЖЕНИЕ(x,3,1,7). (<Enter>).

Объясните результат и запишите исходный текст (задание) упражнения.

Результат представить преподавателю.


Дата добавления: 2018-05-02; просмотров: 1162; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!