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).
К данному предикату (базе знаний) можно задать вопросы:
22
6
?объем(10,20,5,V).
Нажав кнопку
получим
ответ системы
Пролог-
Д:V=1000.
Предикат «объем» обратим, это означает, что используя это
описание можно вычислить не только объем по заданным сторонам и
высоте, но и любую (одну) сторону или высоту по заданным высоте,
стороне и объему.
Задайте вопрос:
?объем(а,20,5,1000).
Получим ответ : а = 10.
Задача2: Если необходимо вычислить число x=2*3+1,
то для этого достаточно набрать на клавиатуре вопрос к другому
встроенному предикату:
?УМНОЖЕНИЕ(2,3,1,x).
Ответ системы:
x=7
22
7
Реализация деления осуществляется через встроенный предикат
умножения. Например, для выражения x=z/y имеем:
ДЕЛЕНИЕ(z,y,x):-УМНОЖЕНИЕ(x,y,z).
Реализация вычитания.Для выражения x=y-z запишем:
ВЫЧИТАНИЕ(y,z,x):-СЛОЖЕНИЕ(x,z,y).
В данных случаях во встроенных предикатах переменные как бы
перевернуты на оборот.
Do'stlaringiz bilan baham: |