
Завдання 9
Розробити автоматизовану СПР, яка вирішує наступну задачу.
Клієнти банку зробили депозитні вклади у різних валютах: доларах США, гривні і євро. Відомо, що Петро не довіряє гривні і живе у одному будинку із клієнтом, який зробив вклад у євро. Олена має гарні відносини із Тетяною, яка довіряє гривні. Визначити, у якій валюті зробили вклади кожен із клієнтів банку.
имя_клиента(X):- X=петр; X=лена; X=таня.
валюта(Y):- Y=евро; Y=доллар; Y=грн.
депозит(X,Y):-
имя_клиента(X),
валюта(Y),
X=петр,not(Y=грн),not(Y=евро),not(Y=грн);
имя_клиента(X),валюта(Y),X=таня,not(Y=доллар),not(Y=евро);
имя_клиента(X),валюта(Y),not(X=петр),not(X=таня).
solution(X1,Y1,X2,Y2,X3,Y3):-имя_клиента(X1),имя_клиента(X2),имя_клиента(X3),
валюта(Y1),валюта(Y2),валюта(Y3),депозит(X1,Y1),
депозит(X2,Y2), депозит(X3,Y3),Y1\=Y2,Y2\=Y3,Y1\=Y3,
X1\=X2,X2\=X3,X1\=X3,!.
Завдання 10
Розробити автоматизовану СПР, яка вирішує наступну задачу.
У банка є чотири багатих клієнта: Томас Герберт, ГербертФренсіс, Френсіс Джеймс та Джеймс Томас. Відомо, що Герберт значно багатший Томаса. Френсіс багатший і Томаса, і Герберта. Герберт бідніший за Джеймса, однак багатший за Френсіса.
Визначити статки клієнтів банку від найбіднішого до найбагатшого.
partname(1,"Tomas").
partname(2,"Gerbert").
partname(3,"Frensis").
partname(4,"James").
name("Tomas","James Tomas").
name("Tomas","Tomas Gerbert").
name("Gerbert","Tomas Gerbert").
name("Gerbert","Gerbert Frensis").
name("Frensis","Gerbert Frensis").
name("Frensis","Frensis James").
name("James","Frensis James").
name("James","James Tomas").
member(P,[P|_]):-!.
member(P,[_|T]):-member(P,T).
richer (P1,P2,[P1|T]):-member(P2,T),!.
richer (P1,P2,[_|T]):- richer (P1,P2,T).
insert_evry_position(X, [X|T], T).
insert_evry_position(X, [H|T], [H|S]):-
insert_evry_position(X, T, S).
permutation([], []).
permutation([H|T], R):-
permutation(T, X), insert_evry_position(H, R, X).
solve(S):-
permutation(["James Tomas","Tomas Gerbert","Gerbert Frensis","Frensis James"],L),
name("Tomas",A0),
name("Gerbert",B0),
richer (B0,A0,S),
name("Frensis",C0),
richer (C0,B0,S),
name("Frensis",C1),
name("Tomas",A1),
name("Gerbert",B1),
richer(A1,C1,S),
richer(B1,C1,S),
A1\=B1,
name("Gerbert",B2),
name("James",D0),
richer(D0,B2,S),
name("Frensis",C2),
richer(B2,C2,S),
string_to_list(S,L),
write(S).