Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
05.06.2015
Размер:
34.82 Кб
Скачать

Міністерство освіти і науки України

Кіровоградський національний технічний університет

Механіко-технологічний факультет

Кафедра програмного забезпечення

Дисципліна: «Логічне програмування»

Лабораторна робота №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 предикат */

Контрольні питання:

  1. Що таке багатомісні предикати? Наведіть приклади.

Це предикати, які містять в собі декілька аргументів. Наприклад при описі паралельності або при описі відношення батько – син та багато інших.

  1. Чому для описання відношення асоціативності та комутативності на мові Turbo Prolog треба використовувати новий предикат?

Тому що в протилежному випадку заголовок правила уніфікувався б з однією з умов, яка, в свою чергу, уніфікувалася б з заголовком. Процес продовжувався б до тих пір, поки б не відбулося переповнення стека. Зв’язок двох відношень зручно оформити новим предикатом з тих же міркувань.

  1. Якими значками на мові Turbo Prolog передаються союзи „і” та „або”?

Союз “і” на мові програмування Prolog заміняє символ “,”, союз “або” на мові програмування Prolog заміняє символ “;”.

Соседние файлы в папке ЛП