Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lice(1,petko,petkovski,m,datum(1,3,1950),kratovo,skopje).
- lice(2,marija,petkovska,z,datum(30,5,1954),kumanovo,skopje).
- lice(3,ljubica,petkovska,z,datum(29,11,1965),skopje,skopje).
- lice(4,vasil,vasilev,m,datum(8,4,1954),bitola,bitola).
- lice(5,elena,vasileva,z,datum(19,6,1958),resen,bitola).
- lice(6,krste,krstev,m,datum(9,8,1948),veles,veles).
- lice(7,biljana,krsteva,z,datum(13,8,1949),veles,veles).
- lice(8,igor,krstev,m,datum(26,10,1971),veles,skopje).
- lice(9,kristina,krsteva,z,datum(30,5,1974),kumanovo,skopje).
- lice(10,julija,petrova,z,datum(30,5,1978),skopje,skopje).
- lice(11,bosko,petkovski,m,datum(13,11,1981),skopje,skopje).
- lice(12,gjorgji,vasilev,m,datum(15,7,1978),bitola,bitola).
- lice(13,katerina,petkovska,z,datum(11,12,1979),bitola,skopje).
- lice(14,petar,vasilev,m,datum(21,2,1982),skopje,skopje).
- lice(15,andrej,krstev,m,datum(3,8,1998),skopje,skopje).
- lice(16,martina,petkovska,z,datum(5,12,2005),skopje,skopje).
- familija(1,2,[9,10]).
- familija(1,3,[11]).
- familija(4,5,[12,13,14]).
- familija(6,7,[8]).
- familija(8,9,[15]).
- familija(11,13,[16]).
- %predci(Sifra,L)
- %ako polovite isti vrati ja sifrata
- clen(X,[X|_]).
- clen(X,[_|L]) :- clen(X,L).
- dodadi([],L, L).
- dodadi([X|O],L,[X|NL]) :- dodadi(O,L,NL).
- ist_pol(X,L):- izdeli_pol(X,P),findall(Br,lice(Br,_,_,P,_,_,_),L).
- izdeli_pol(X,P):-lice(X,_,_,P,_,_,_).
- nema_rod(X):-findall(X,(familija(_,_,L),clen(X,L)),L1),L1 = [].
- tatko(X,T):- familija(T,_,L),clen(X,L).
- majka(X,T):- familija(_,T,L),clen(X,L).
- roditeli(X,L):-findall(C,(familija(C,_,L1),clen(X,L1);familija(_,C,L2),clen(X,L2)),L).
- ist_pol_rod(X,R):-roditeli(X,L1),izdeli_pol(X,P),lice(R,_,_,P,_,_,_),clen(R,L1).
- pred(X,Y):- (familija(X,_,L),clen(Y,L));
- (familija(_,X,L),clen(Y,L)).
- pred(X,Y):- ((familija(X,_,L),clen(Z,L));
- (familija(_,X,L),clen(Z,L))),pred(Z,Y).
- polovi([],_,[]).
- polovi([X|O],Pol,[X|L]):-izdeli_pol(X,P),Pol == P,polovi(O,Pol,L).
- polovi([X|O],Pol,L):-izdeli_pol(X,P),Pol \== P,polovi(O,Pol,L).
- abs(X,Y):-
- X >= 0,Y is X.
- abs(X,Y):-
- X <0, Y is -X.
- den_ragjanje(X,T):-lice(X,_,_,_,datum(D,M,_),_,_),T is D+M*30.
- ok_datum([],_,[]).
- ok_datum([X|L],Dat,[X|L2]):-den_ragjanje(X,D), abs((Dat-D),A),A<7,ok_datum(L,Dat,L2).
- ok_datum([X|L],Dat,L2):-den_ragjanje(X,D), abs((Dat-D),A),A>7,ok_datum(L,Dat,L2).
- predci(Sifra,L):-findall(Predci,pred(Predci,Sifra),L1),
- izdeli_pol(Sifra,Pol),polovi(L1,Pol,L2),den_ragjanje(Sifra,T)
- ,ok_datum(L2,T,L).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement