1650

Rezolvarea enigmelor logice in Prolog

Am o problema de rezolvat in prolog , solutia arata cam asa:solutie(Nume,Sport):- regula(1,Prieteni), regula(2,Prieteni), regula(3,Prieteni), regula(4,Prieteni), intrebare1(Nume,Prieteni), intrebare2(Sport,Prieteni). cind incep sa declar predicatele :regula(1,[prieten(_,_,_),prieten(_,_,_),prieten(_,_,_)]). apare eroarea: Type Error: Wrong Object Typesi nu inteleg ... cum de declarat "prieten" ca sa mearga :)daca trebuie problema pentru a intelege intrebarea pot so punprogramez in Visual Prolog 5.2 am incercat si in Turbo Prolog 2.0 tot nu merge
0
caliogstro15 Декабря 2009, 02:44
C
caliogstro15 Декабря 2009, 02:44

Ce trebuie sa obtii de fapt? Ce este "regula" si ce este "intrebare1" si intrebare2"? Care e relatia intre "Prieteni" si "prienten(,,)"?

Referitor la VisualProlog, e bun, dar nu e gratis. Iar TurboProlog e vechitura. Incearca sa utilizezi SWI Prolog sau GNU Prolog.

0
  • 0
  • 0
directshow15 Декабря 2009, 13:31
D
directshow15 Декабря 2009, 13:31
caliogstro
...Ce trebuie sa obtii de fapt? Ce este "regula" si ce...

problema:
Trei prieteni au ocupat la o universiada locurile unu, doi si trei. Prietenii sunt din tari diferite, se numesc diferit si practica diferite sporturi. Michel prefera baschetul si joaca mai bine decat americanul. Israileanul Simon joaca mai bine decat tenismenul. Jucatorul in crichet a ocupat primul loc. Cine este australian? Ce sport practica Richard?

...

regula(1,[prieten(_,_,_),prieten(_,_,_),prieten(_,_,_)]).
regula(2,Prieteni):-
joaca_mai_bine(Prieten1,Prieten2,Prieteni),
Prieten1=prieten(michel,_,baschet),
Prieten2=prieten(_,sua,_).
...
intrebare1(Nume,Prieteni):-
apartine(prieten(Nume,australia,_),Prieteni).

...

solutie(Nume,Sport):-
regula(1,Prieteni),
regula(2,Prieteni),
regula(3,Prieteni),
regula(4,Prieteni),
intrebare1(Nume,Prieteni),
intrebare2(Sport,Prieteni).

dar am rezolvat problema ... trebuia sa declar in DOMAINS
p = prieten(symbol,symbol,symbol)
lp = p*
...

dar sa compilat in Turbo Prolog, in Visual Prolog da eroare nushtiu de ce
"721 Basic domain becomes reference domain" da cu SWI-Prolog nam incercat deam oi incerca vineri/simbata cind oi avea timp :)

0
  • 0
  • 0