лп / Krtuvorychko / otchet_2
.docМіністерство освіти і науки, молоді і спорту України
Кіровоградський національний технічний університет
Механіко-технологічний факультет
Кафедра програмного забезпечення
Дисципліна: « Логічне програмування »
Лабораторна робота № 2
Тема: «Багатомісні предикати, комутативність і асоціативність»
Виконав: ст. групи КІ-12-СК
Криворучко О.В.
Перевірив: викладач
Резніченко В.А.
Кіровоград 2013
Мета: Розглянути структуру багатомісних предикатів та правила описання властивостей комутативності і асоціативності на мові програмування Turbo Prolog.
Завдання:
1. Задано співвідношення між прямими а, b і с по варіантам (номер варіанту визначається за формулою (N mod 12)+1, де N – номер по журналу):
8) с║а, а┴b
2. Зобразіть прямі на папері.
3. Складіть програму, що містить дані факти і правила, що пов’язують між собою паралельні і перпендикулярні прямі.
4. Задати питання типу:
- Чи паралельні вказані прямі?
- Чи перпендикулярні вказані прямі?
- Які прямі паралельні (перпендикулярні) вказаній прямій?
- Які прямі паралельні чи перпендикулярні вказаній прямій?
- Чи існують прямі, одночасно паралельні і перпендикулярні?
Лістинг програми:
predicates
paral(symbol,symbol)
perp(symbol,symbol)
clauses
paral(c,a).
paral(a,c):-paral(c,a).
perp(a,b).
perp(b,a):-perp(a,b).
perp(c,b):-paral(a,c),perp(a,b).
perp(b,c):-perp(c,b).
Рис.1 – Виконання програми
Контрольні питання:
-
Що таке багатомісні предикати? Наведіть приклади.
Це предикати, які містять в собі декілька аргументів. Наприклад при описі паралельності або при описі відношення батько – син та багато інших.
-
Чому для описання відношення асоціативності та комутативності на мові Turbo Prolog треба використав
-
увати новий предикат?
Тому що в протилежному випадку заголовок правила уніфікувався б з однією з умов, яка, в свою чергу, уніфікувалася б з заголовком. Процес продовжувався б до тих пір, поки б не відбулося переповнення стека. Зв’язок двох відношень зручно оформити новим предикатом з тих же міркувань.
-
Якими значками на мові Turbo Prolog передаються союзи „і” та „або”?
Союз “і” на мові програмування Prolog заміняє символ “,”, союз “або” на мові програмування Prolog заміняє символ “;”.