47163325 prolog probleme
Post on 24-Sep-2015
261 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
24
Interogri:
8)PROGRAMATORI
Enunul problemei:
James,Tim, Bob i Jim, fiecare cunosc cte un limbaj de programare diferit i
fiecare este specializat ntr-un domeniu diferit. Se cunosc urmtoarele:
a)Cel ce programeaz n Java e specialist n biologie.
b)Tom nu tie nici Prolog nici HTML, nici matematic.
c)James nu cunoate nici Prolog, nici HTML, nici matematic .
d)Specialistul n chimie nu programeaz n HTML.
e)Bob e specialist n fizic i nu programeaz in Prolog.
In ce limbaj i n ce domeniu e specializat fiecare?
Codul n Prolog:
%fapte
nume(james).
-
25
nume(tom).
nume(bob).
nume(jim).
limbaj(html).
limbaj(cpp).
limbaj(java).
limbaj(prolog).
domeniu(mate).
domeniu(fizica).
domeniu(chimie).
domeniu(bio).
%reguli
regula1(Y,Z):-Y=bio,!,Z=java.
regula1(_,_).
regula2(X,Y,Z):-X=tom,!,Y\==mate,Z\==prolog,Z\==html.
regula2(_,_,_).
regula3(X,Y,Z):-X=james,!,Y\==mate,Z\==prolog,Z\==html.
regula3(_,_,_).
regula4(Y,Z):-Y=chimie,!,Z\==html.
regula4(_,_).
regula5(X,Y,Z):-X=bob,!,Y=fizica,Z\==prolog.
regula5(_,_,_).
rezolva(X,Y,Z):-nume(X),
domeniu(Y),
limbaj(Z),
regula1(Y,Z),
regula2(X,Y,Z),
regula3(X,Y,Z),
regula4(Y,Z),
regula5(X,Y,Z).
diferit(X1,X2,X3,X4):-X1\==X2,X1\==X3,X1\==X4,X2\==X3,X2\==X4,X3\==X4.
solutie(Y1,Z1,Y2,Z2,Y3,Z3,Y4,Z4):-rezolva(james,Y1,Z1),
rezolva(tom,Y2,Z2),
rezolva(bob,Y3,Z3),
rezolva(jim,Y4,Z4),
diferit(Y1,Y2,Y3,Y4),
diferit(Z1,Z2,Z3,Z4).
-
26
Interogri:
9) DENSITATE
Enunul problemei: Se d o baz de cunotine, se cere s se gseasc rile cu denitatea populaiei
aproximativ egal.
Codul n Prolog:
query :- query(_), fail.
query.
query([C1,D1,C2,D2]) :-
density(C1,D1),
density(C2,D2),
D1 > D2,
T1 is 20*D1,
T2 is 21*D2,
T1 < T2.
density(C,D) :-
pop(C,P),
area(C,A),
D is (P*100)//A.
% populations in 100000's
pop(china, 8250).
pop(india, 5863).
pop(ussr, 2521).
pop(usa, 2119).
pop(indonesia, 1276).
pop(japan, 1097).
top related