Documente Academic
Documente Profesional
Documente Cultură
Trei prieteni au obtinut primul, al doilea si respectiv al treilea loc intr-un concurs.
1. Fiecare dintre ei au nume diferite, prefera un alt sport si au nationalitati diferite.
2. Michael prefera baschetul si a obtinut un loc mai bun decat americanul.
3. Simon este israelian si a obtinut un loc mai bun decat jucatorul de tenis.
4. Jucatorul de cricket a obtinut primul loc.
Sa se scrie un program in Prolog care sa raspunda la urmatoarele intrebari: Cine este
Australian,israelian,american ? Ce sport prefera un oarecare sportiv ?
p([[_,_,cricket,1],[_,_,_,2],[_,_,_,3]]).
apartine(X, [X | _]).
clasament(L) :- p(L),
apartine([michael,_,baschet,A],L),apartine([_,american,_,B],L),A<B,
apartine([simon,israelian,_,C],L),apartine([_,_,tenis,D],L),C<D,
apartine([richard,_,_,_],L),apartine([_,australian,_,_],L),!.
apartine([Y,X,_,_],L),!.
apartine([X,_,Y,_],L),!.
p([[_,_,cricket,1],[_,_,_,2],[_,_,_,3]]).
apartine(X, [X | _]).
clasament(L).
In predicatul prieteni se contin toate datele cunoscute de noi cum ar fi: michael prefera baschetul, etc.
nationalitatea(X,Y).
Predicatul nationalitatea are doi atomi : X care este de intrare si va contine nationalitatea si Y care este
de output in care se va intoarce numele sportivului care corespunde nationalitatii date.
sport(X,Y).
Predicatul sport are doi atomi : X care este de intrare si va contine numele sportivului si Y care este de
output in care se va intoarce sportul pe care il prefera sportivul dat.
clasament(Clasament).
Clasament = [[simon, israelian, cricket, 1], [michael, australian, baschet, 2], [richard, american,
tenis, 3]]
Prefera = cricket
Cine = richard