Professional Documents
Culture Documents
Vezbe Prolog
Vezbe Prolog
topalovic(laki).
topalovic(milutin).
voziKola(mirko).
voziKola(laki).
otac(milutin, laki).
otac(laki, mirko).
?-topalovic(laki).
Yes
?-voziKola(mirko).
Yes
?-voziKola(milutin).
No
?-otac(laki,milutin).
No
?-otac(laki).
ERROR
?-topalovic(pantelija).
No
?-pogrebnik(laki).
ERROR
pratiFilm(kristina).
srecan(maksimilijan).
sviraKlavir(kristina):-pratiFilm(kristina).
slusajuGa(maksimilijan):-trubi(maksimilijan).
trubi(maksimilijan):-srecan(maksimilijan).
?-sviraKlavir(kristina).
Yes
?-slusajuGa(maksimilijan).
Yes
pratiFilm(kristina).
ljutiSe(maksimilijan).
sviraKlavir(kristina):ljutiSe(kristina),
pratiFilm(kristina).
nijeSrecan(maksimilijan):-pratiFilm(maksimilijan).
nijeSrecan(maksimilijan):-ljutiSe(maksimilijan).
?-sviraKlavir(kristina).
No
?-nijeSrecan(maksimilijan).
Yes
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marcellus, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
X = mia ;
X = jody ;
X = yolanda ;
No
?- loves(marcellus, X), woman(X).
X = mia ;
No
loves(vincent, mia).
loves(marcellus, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
jealous(X,Y):- loves(X,Z),
loves(Y,Z).
?-jealous(marcellus,Y).
Y = vincent ;
Y = marcellus ;
No
AUTOBUS
GUBITAK
HARDVER
JUBILEJ
KOMANDA
TITANIK
+ - * / // mod
?- X=1+2.
X=1+2;
No
X=+(1,2)
?- X=1+2, X=3.
No
?- 3=1+2.
No
is
?- X is 1+2.
x = 3;
No
?- 3 is 1+2.
Yes
?- X is Y+2.
Error
?- Y is 1+2, X is Y+3.
Y=3
X=6;
No
?- 1+2 is 1+2.
No
?- X=3, Y is X+2.
X=3
Y=5;
No
?- X=3, X is X+2.
No
?- Y=3, X=Y.
Y=3
X=3;
No
?- X=Y.
X=_G212
Y=_G212
?- not(X=Y).
No
?- X\=Y.
No
?- not(X\=Y).
X=_G212
Y=_G218
% suma(N)=suma(N-1)+N
% greska : S=N+suma(N-1, S)
suma(1, 1).
suma(N, S):-
M is N-1,
suma(M, R),
S is N+R.
% ?- suma(4, X).
% X = 10;
% Error: Out of local stack
suma(1, 1).
suma(N, S):-
N>1,
M is N-1,
suma(M, R),
S is N+R.
% ?- suma(X, 4).
Error
% ?- suma(3, 6).
Yes
% Napisati predikat koji za dati
% prirodan broj racuna faktorijel.
fakt(0, 1).
fakt(N, F):-
N>0,
M is N-1,
fakt(M, R),
F is N*R.
N<10.
N>=10,
M is N//10,
sumac(M, R),
S is N mod 10 + R.
fakt(0, 1):-
!.
fakt(N, F):-
M is N-1,
fakt(M, R),
F is N*R.
br_c(N, 1):-
N < 10,
!.
br_c(N, F):-
M is N // 10,
br_c(M, R),
F is R + 1.
br3sfc(100).
br3sfc(1000):- !.
br3sfc(N):-
br3_je_sfc(N),
write(N),
nl,
M is N + 1,
br3sfc(M).
br3sfc(N):-
not(br3_je_sfc(N)),
M is N + 1,
br3sfc(M).
X > 2,
sqrt(X, Y),
round(Y, Z),
not(deljiv(X, 2, Z)).
deljiv(X, A, B) :-
A > B,
!,
fail.
deljiv(X, A, B) :-
X mod A =:= 0,
!.
deljiv(X, A, B) :-
C is A + 1,
deljiv(X, C, B).
brrec(0) :- writeln('nula').
.
.
.
brrec(9) :- writeln('devet').
brrec(N) :-
N > 9,
M is N//10,
brrec(M),
T is N mod 10,
brrec(T).
T is N mod 2,
brbin(T).
bin(1, 1).
bin(N, B) :-
N > 1,
P is N
Q is N
bin(Q,
B is A
mod 2,
// 2,
A),
* 10 + P.
T is N mod M,
nzd2(M, T, K).
nzd2(N, M, R),
K is N * M // R.
N=<2,
!.
fibonaci(N, X) :-
G is N-1,
S is G-1,
fibonaci(G, K),
fibonaci(S, M),
X is K+M.