готов лаби 4 курс 1 сим / ЛП / L2_B_l
.docМіністерство освіти і науки України
Кіровоградський національний технічний університет
Механіко-технологічний факультет
Кафедра програмного забезпечення
Дисципліна: «Логічне програмування»
Лабораторна робота №2
на тему:
«Багатомісні предикати, комутативність і асоціативність»
Виконав:
Перевірила: викладач
Савеленко О. К.
Кіровоград 2011
Мета: Розглянути структуру багатомісних предикатів та правила описання властивостей комутативності і асоціативності на мові програмування Turbo Prolog.
Завдання:
Задано співвідношення між прямими а, b і с по варіантам (номер варіанту визначається за формулою (N mod 12)+1, де N – номер по журналу):
10. c║b, b┴а
domains
a=symbol
predicates
paralel(a,a)
paralel1(a,a)
perpend(a,a)
perpend1(a,a)
perpend2(a,a)
perpend3(a,a)
perpend4(a,a)
clauses
perpend(b,a).
paralel(c,b).
paralel1(X,Y):-paralel(X,Y);paralel(Y,X).
perpend1(X,Y):-perpend(X,Y);perpend(Y,X).
perpend2(X,Z):-perpend1(X,Y),paralel1(Y,Z). % пряма Х ┴ Z, якщо Х ┴ У, а Z║ Y
perpend3(X,Y):-perpend2(X,Y);perpend2(Y,X).
perpend4(X,Y):-perpend3(X,Y);perpend1(X,Y). /* збираємо результати всіх правил в 1 предикат */
Контрольні питання:
-
Що таке багатомісні предикати? Наведіть приклади.
Це предикати, які містять в собі декілька аргументів. Наприклад при описі паралельності або при описі відношення батько – син та багато інших.
-
Чому для описання відношення асоціативності та комутативності на мові Turbo Prolog треба використовувати новий предикат?
Тому що в протилежному випадку заголовок правила уніфікувався б з однією з умов, яка, в свою чергу, уніфікувалася б з заголовком. Процес продовжувався б до тих пір, поки б не відбулося переповнення стека. Зв’язок двох відношень зручно оформити новим предикатом з тих же міркувань.
-
Якими значками на мові Turbo Prolog передаються союзи „і” та „або”?
Союз “і” на мові програмування Prolog заміняє символ “,”, союз “або” на мові програмування Prolog заміняє символ “;”.