brother(X,Y):-male(Y),parent(X,P), parent(Y,P),X<>Y.
sister(X,Y):-female(Y),parent(X,P),parent(Y,P),X<>Y.
grandfather(X,G):-father(P,G),mother(X,P).
grandfather(X,G):-father(X,P),father(P,G).
Варіанти розв’язків:
goal: brother(alan,ivan) No
goal: grandfather(marilyn,I) I=charles I=bob 2 solutions
Програма 2 Перевірка наявності маршруту для шахматного коня на дошці 3 × 3 з полями:
a1, a2, a3,
a4, a5, a6,
a7, a8, a9.
predicates
been(symbol)
move(symbol,symbol)
path(symbol,symbol)
clauses
been(a3).
move(a1,a6).move(a3,a4).move(a6,a7).move(a8,a3).
move(a1,a8).move(a3,a8).move(a6,a1).move(a8,a1).
move(a2,a7).move(a4,a3).move(a7,a6).move(a9,a4).
move(a2,a9).move(a4,a9).move(a7,a2).move(a9,a2).
path(Z,Z).
path(X,Y) :- move(X,W), not(been(W)),
assert(been(W)), path(W,Y).
Приклад виконання завдання.Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факти: трикутник A має кути – 30, 60, 90,
трикутник B має кути – 20, 80, 80.
Правило: трикутникє рівнобедреним, якщо два його кути однакові.
Мета: чи є трикутники A і B рівнобедреними ?
Запис правил і фактів мовою Пролог може мати вигляд:
predicates
tre (symbol, integer, integer, integer)
rb (symbol)
clauses
tre (a, 30, 60, 90).
tre (b, 20, 80, 80).
rb (V) :- tre (V, X, Y, _), X=Y .
rb (V) :- tre (V, _, Y, Z), Y=Z .
rb (V) :- tre (V, X, _, Z), X=Z .
Цілі записуються у вигляді rb(a), rb(b).
Завдання до розділу 6
1 Мовою Lisp описати і застосувати функцію, що обчислює один з коренів квадратного рівняння.
2 Мовою Lisp описати і застосувати функцію, що обчислює площу трикутника за відомими довжинами сторін.
3 Мовою Lisp описати і застосувати функцію, що обчислює площу трапеції за відомими основами і висотою.
4 Мовою Lisp описати і застосувати функцію, що обчислює площу круга за відомим діаметром.
5 Мовою Lisp описати і застосувати функцію, що обчислює площу круга за відомим радіусом.
6 Мовою Lisp описати і застосувати функцію, що обчислює об’єм кулі за відомим радіусом.
7 Мовою Lisp описати і застосувати функцію, що обчислює відстань від довільної точки на площині до точки з координатами (2,3).
8 Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факти: a - син b;
b - син c.
Правило: x - онук z, якщо x - син y і y – син z.
Мета: чи є a онуком c?
9 Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факт: a - чоловік b.
Правило: x - дружина y, якщо y – чоловік x.
Мета: чи є bдружиною a?
10 Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факти: a – позитивне;
b – негативне.
Правило: добуток xyпозитивний, якщо xі y – обоє позитивні або обоє негативні.
Мета: чи є ab позитивним ?
11 Мовою Prolog написати програму з такими правилами і цілями:
Правило: добуток xy позитивний, якщо x>0, y>0 або x<0, y<0.
Мета: чи є добуток (-1) і (-5) позитивним ?
12 Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факти: a – поле класу c ;
b – метод класу d.
Правило: x – є членом класу y, якщо x – поле y або x – метод y.
Мета: чи є a членом класу d?
13 Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факти: трикутник A має кути – 60, 60, 60;
трикутник B має кути – 45, 45, 90.
Правило: трикутникє прямокутним, якщо один з його кутів дорівнює 90 градусам.
Мета: чи є трикутники A і B прямокутними ?
14 Мовою Prolog написати програму з такими фактами, правилами і цілями:
Факти: трикутник A має кути – 60, 60, 60;
трикутник B має кути – 45, 45, 90.
Правило: трикутникє рівностороннім, якщо всі кути рівні.
Мета: чи є трикутники A і B рівносторонніми ?
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.