% Dinko Korunic, 36355514, Tue Nov 27 09:39:24 CET 2001 % Treca laboratorijska vjezba iz Inteligentnih sustava % PRVI ZADATAK: % ------------- % jimmy plays football and squash % susan plays tennis and basketball and volleyball :-op(500, yfx, and). % veze jace od plays/2, prvo se rjesava % izraz s lijeve strane :-op(600, xfx, plays). % prevedeno: plays(jimmy, and(football, squash)). plays(susan, and(and(tennis, basketball), volleyball)). % DRUGI ZADATAK: % -------------- :-op(600, xfx, was). :-op(500, yfx, of). :-op(400, fx, the). diana was the secretary of the departement. % TRECI ZADATAK: % -------------- brojiListu([], 0). brojiListu([Glava|Rep], Broj):- brojiListu(Rep, Broj1), Broj is Broj1 + 1. nzd(X, X, X). nzd(X, Y, Djelitelj):- X < Y, Y1 is Y - X, nzd(X, Y1, Djelitelj). nzd(X, Y, Djelitelj):- X > Y, nzd(Y, X, Djelitelj). % CETVRTI ZADATAK: % ---------------- prefiks(_, 0, []). prefiks([Glava|Rep], N, [Glava|Rep1]):- N1 is N - 1, prefiks(Rep, N1, Rep1). sufiks(L, N, Ls):- povezi(L1, Lista, L), brojiListu(Lista, N), =(Lista, Ls). % PETI ZADATAK: % ------------- veci(X, Y, Z):- X > Y, Z is X. veci(X, Y, Z):- X < Y, Z is Y. % SESTI ZADATAK: % -------------- najveci([G], G). najveci([Glava|Rep], Max):- najveci(Rep, MaxStari), Glava > MaxStari, Max is Glava. najveci([Glava|Rep], Max):- najveci(Rep, Max), Max > Glava. % SEDMI ZADATAK: % -------------- poredana([_]). poredana([Glava1|[Glava2|Rep]]):- Glava1 =< Glava2, poredana([Glava2|Rep]). % OSMI ZADATAK: % ------------- suma_podskupa(Skup, Podskup, Suma):- podskup(Podskup, Skup), suma(Podskup, Suma). suma([], 0). suma([Glava|Rep], Suma):- suma(Rep, NovaSuma), Suma is NovaSuma + Glava. suma(Rep, NovaSuma). % DEVETI ZADATAK: % --------------- izmedju(A, A, [A]). izmedju(A, B, [A|Rep]):- A < B, NoviA is A + 1, izmedju(NoviA, B, Rep). % DESETI ZADATAK: % --------------- :-op(900, xfx, :=). :-op(910, xfx, then). :-op(920, xfy, else). :-op(930, fx, if). :=(A, B) :- A is B. if(A) :- A. then(A, B) :- A -> B. else(then(A, B), C) :- A -> B; C.