Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Author:
- % Date: 10/15/2018
- barbat(andrei).
- barbat(cristi).
- barbat(marius).
- barbat(ovidiu).
- barbat(george).
- barbat(constantin).
- barbat(adrian).
- barbat(costin).
- femeie(elena).
- femeie(ana).
- femeie(adriana).
- femeie(andreea).
- femeie(georgeta).
- femeie(larisa).
- femeie(maria).
- femeie(cristina).
- parinte(andrei, cristi).
- parinte(andrei, elena).
- parinte(cristi, adriana).
- parinte(cristi, marius).
- parinte(cristi, ovidiu).
- parinte(elena, ana).
- parinte(ana, george).
- cuplu(andreea, andrei).
- cuplu(cristina, cristi).
- cuplu(larisa, ovidiu).
- cuplu(maria, marius).
- cuplu(adriana, adrian).
- cuplu(elena, constantin).
- cuplu(ana, costin).
- cuplu(georgeta, george).
- frate(X,Y):-parinte(Z,X),parinte(Z,Y),X\=Y,barbat(Y).
- sora(X,Y):-parinte(Z,X),parinte(Z,Y),X\=Y,femeie(Y).
- fiu(X,Y):-parinte(Y,X), barbat(Y).
- fiu(X,Y):-parinte(Y,X), femeie(Y).
- soacra(X,Y):-cuplu(X,Z),parinte(Y,Z), femeie(Y).
- soacra(X,Y):-cuplu(Z,X),parinte(Y,Z), femeie(Y).
- soacra(X,Y):-cuplu(X,Z),parinte(A,Z), cuplu(Y,A), femeie(Y).
- soacra(X,Y):-cuplu(Z,X),parinte(A,Z), cuplu(Y,A), femeie(Y).
- cumnatM(X,Y):-cuplu(X,Z),frate(Z,Y).
- cumnatM(X,Y):-cuplu(Z,X),frate(Z,Y).
- cumnata(X,Y):-cuplu(X,Z),sora(Z,Y).
- cumnata(X,Y):-cuplu(Z,X),sora(Z,Y).
- ginere(X,Y):-parinte(X,Z),cuplu(Z,Y),barbat(Y).
- ginere(X,Y):-parinte(X,Z),cuplu(Y,Z),barbat(Y).
- ginere(X,Y):-cuplu(X,Z), parinte(Z,A),cuplu(A,Y),barbat(Y).
- ginere(X,Y):-cuplu(Z,X), parinte(Z,A),cuplu(A,Y),barbat(Y).
- cumnat(X,Y):-cuplu(X,Z),parinte(A,Z),parinte(A,Y),Z\=Y.
- cumnat(X,Y):-cuplu(X,Z),parinte(A,Z),parinte(A,B),cuplu(B,Y),B\=Y,X\=Y.
- cumnat(X,Y):-cuplu(X,Z),parinte(A,Z),parinte(A,B),cuplu(Y,B),B\=Y,X\=Y.
- cumnat(X,Y):-cuplu(Z,X),parinte(A,Z),parinte(A,B),cuplu(B,Y),B\=Y,X\=Y.
- cumnat(X,Y):-cuplu(Z,X),parinte(A,Z),parinte(A,B),cuplu(Y,B),B\=Y,X\=Y.
- copii(X):-parinte(X,Y),writeln(Y),fail.
- copii(_X).
- nepoti(X):-parinte(X,Z),parinte(Z,Y),writeln(Y),fail.
- nepoti(_X).
- descendenti(X):-copii(X),nepoti(X).
- usa(afara,hol).
- usa(hol,afara).
- usa(hol,birou).
- usa(birou,hol).
- usa(birou,bucatarie).
- usa(bucatarie,birou).
- usa(sufragerie,bucatarie).
- usa(bucatarie,sufragerie).
- usa(subsol,bucatarie).
- usa(bucatarie,subsol).
- aici(bucatarie).
- obiecte(hol,cuier).
- obiecte(birou,masa).
- obiecte(birou,calculator).
- obiecte(birou,scaun).
- obiecte(sufragerie,televizor).
- obiecte(sufragerie,biblioteca).
- obiecte(sufragerie,fotolii).
- obiecte(sufragerie,canapea).
- obiecte(bucatarie,aragaz).
- obiecte(bucatarie,frigider).
- obiecte(bucatarie,masa).
- obiecte(bucatarie,scaune).
- obiecte(bucatarie,biscuiti).
- obiecte(bucatarie,mere).
- obiecte(subsol,masina_de_spalat).
- obiecte(subsol,rufe_murdare).
- ob(X):-obiecte(X,Y),writeln(Y),fail.
- ob(_X).
- camere(X):-usa(X,Y),writeln(Y),fail.
- camere(_X).
- start(X):-write('Esti in '),write(X),
- write('Poti vedea '),ob(X),
- write('Poti merge in' ),camere(X).
- suma(X,Y,S):-S is X+Y.
- numar(3).
- numar(4).
- numar(5).
- unitate(X,Z):-Z is X+1.
- patrat(X,Z):-Z is X*X.
- maxim2(X,Y,Z):-X>Y,Z is X.
- maxim2(X,Y,Z):-X<Y,Z is Y.
- maxim2(X,Y,Z):-X=Y,Z is Y.
- maxim3(X,Y,A,Z):-Y>X,Y>A,Z is Y.
- maxim3(X,Y,A,Z):-X>Y,X>A,Z is X.
- maxim3(X,Y,A,Z):-A>Y,A>X,Z is A.
- maxim3(X,Y,A,Z):-A=Y,A=X,X=Y,Z is A.
- modul(X,Z):-X>0,Z is X.
- modul(X,Z):-X<0,Z is -X.
- modul(X,Z):-X=0,Z is X.
- paritate(X):-Y is X mod 2, Y=1, write('Impar').
- paritate(X):-Y is X mod 2, Y=0, write('Par').
- par(X,0):-0 is X mod 2.
- impar(X,1):-1 is X mod 2.
- semn(X):-X>=0, write('Pozitiv').
- semn(X):-X<0, write('Negativ').
- f1(X,Z):-Z is 3*X*X-4.
- f2(X,Z):-Z is 4*X*X+2*X-3.
- f3(X,Z):-X>0,Z is X-1.
- f3(X,Z):-X=<0,Z is 0.
- f4(X,Z):-modul(X,Y),Z is Y-4.
- f5(X,Z):-Y is X-3, modul(Y,A), Z is 2*A.
- f6(X,Z):-X>10, Z is X*X+1.
- f6(X,Z):-X=<10, modul(X,Y), Z is Y-4.
- f7(X,Z):-par(X,0),Z is 2*X*X+1.
- f7(X,Z):-impar(X,1),Z is X-7.
- nota(ion,4).
- nota(marius,8).
- nota(adriana,3).
- nota(carmen,10).
- promovat(X):-nota(X,Y),Y>=5, write('Promovat').
- promovat(X):-nota(X,Y),Y<5, write('Picat').
- ecgrad1(A,B,Z):-A=0, write('Nu poate fi rezolvata ').
- ecgrad1(A,B,Z):-A\=0, Z is (0-B)/A.
- ecgrad2(A,B,C,Z):-A=0,ecgrad1(B,C,Z).
- ecgrad2(A,B,C,Z):-D is B*B-4*A*C, D<0, write('Nu poate fi rezolvata, radacini complexe').
- ecgrad2(A,B,C,Z):-D is B*B-4*A*C, D=0, Z is -B/(2*A).
- ecgrad2(A,B,C,Z):-D is B*B-4*A*C, D>0, X is (-B-sqrt(D))/(2*A), write(X), writeln(' '), Z is (-B+sqrt(D))/(2*A).
- discuta(A,B):-cunoaste(A,B).
- discuta(X,Y):-cunoaste(X,Z),discuta(Z,Y).
- cunoaste(maria,ana).
- cunoaste(ana,mircea).
- cunoaste(mircea,mihai).
- fact(1,1).
- fact(N,F):-N1 is N-1, fact(N1,F1),F is F1*N.
- fact2(1,T,F):-T=F.
- fact2(N,T,F):-N1 is N-1,T1 is T*N,fact2(N1,T1,F).
- suma(1,1).
- suma(N,S):-N1 is N-1, suma(N1,S1),S is N+S1.
- suma2(1,1).
- suma2(N,S):-N1 is N-1, suma2(N1,S1),S is 1/N+S1.
- fibo(1,1).
- fibo(2,1).
- fibo(N,R):-N1 is N-1, N2 is N-2, fibo(N1,R1), fibo(N2,R2), R is R1+R2.
- ac(1,N,R):-R is N+1.
- ac(M,0,R):-M1 is M-1, ac(M1,1,R).
- ac(M,N,R):-M1 is M-1,N1 is N-1, ac(M,N1,R1),ac(M1,R1,R).
- cmmdc(A,A,D):-D is A.
- cmmdc(A,B,D):-A<B,A\=B,B1 is B-A, cmmdc(A,B1,D).
- cmmdc(A,B,D):-A>B,A\=B,A1 is A-B, cmmdc(A1,B,D).
- putere(N,0,1).
- putere(N,M,R):-M1 is M-1,putere(N,M1,R1),R is R1*N.
- toatenr(0).
- toatenr(N):-N1 is N-1,toatenr(N1),write(N),nl.
- nrpare(0):-write('0').
- nrpare(N):-V is N mod 2, N1 is N-1, V\=1,write(N),nl,nrpare(N1).
- nrpare(N):-V is N mod 2, N1 is N-1, V\=0,nrpare(N1).
- divizor(K,N):-V is N mod K, V=0.
- divizor2(K,N):-V is N mod K, V=0,write(K),nl.
- divizor2(K,N):-V is N mod K, V\=0.
- divizori(N,N).
- divizori(N,D):-D<N, D1 is D+1,divizor2(D,N),divizori(N,D1).
- afis([]).
- afis([X|R]):-write(X),tab(1),afis(R).
- nr([],0).
- nr([X|R],N):-nr(R,N1),N is N1+1.
- apart(X,[X|R]).
- apart(X,[Y|R]):-apart(X,R).
- ultim(X,[X|[]]).
- ultim(X,[Y|R]):-ultim(X,R).
- sumalista([],0).
- sumalista([Y|R],X):-sumalista(R,X1),X is Y+X1.
- sumalistapoz([],0).
- sumalistapoz([Y|R],X):-Y>0,sumalistapoz(R,X1),X is Y+X1.
- sumalistapoz([Y|R],X):-Y<0,sumalistapoz(R,X).
- media([Y|R],X):-sumalista([Y|R],X1),nr([Y|R],N),X is X1/N.
- maximlista([X],X).
- maximlista([Y|R],M):-maximlista(R,X1),Y>X1,M is Y.
- maximlista([Y|R],M):-maximlista(R,X1),Y<X1,M is X1.
- copie([X|R],L):-copie(R,R1),L=[X|R1].
- eliminare([],X,[]).
- eliminare([X|R],X,R1):-eliminare(R,X,R1).
- eliminare([M|R],X,[M|R1]):-eliminare(R,X,R1).
- listapare([],[]).
- listapare([M|R],R1):-N is M mod 2,N\=0,listapare(R,R1).
- listapare([M|R],[M|R1]):-N is M mod 2,N=0,listapare(R,R1).
- pozpare([],[]).
- pozpare([X],[]).
- pozpare([X,Y|L],[Y|R]):-pozpare(L,R).
- maximl2([],Mt,M):-M=Mt.
- maximl2([X|R],Mt,M):-X>Mt,maximl2(R,X,M).
- maximl2([X|R],Mt,M):-X=<Mt,maximl2(R,Mt,M).
- maximl([X|R],M):-maximl2(R,X,M).
- pozmaximl2([],Mt,M,N,Poz,P):-M=Mt,P=Poz.
- pozmaximl2([X|R],Mt,M,N,Poz,P):-X=<Mt,N1 is N+1,pozmaximl2(R,Mt,M,N1,Poz,P).
- pozmaximl2([X|R],Mt,M,N,Poz,P):-X>Mt,Poz1 is N,N1 is N+1,pozmaximl2(R,X,M,N1,Poz1,P).
- pozmaximl([X|R],M,P):-pozmaximl2(R,X,M,2,1,P).
- prefix([],L).
- prefix([X|R1],[X|R2]):-prefix(R1,R2).
- sufix(L,L).
- sufix(L,[X|R]):-sufix(L,R).
- sublista(L1,L):-prefix(L2,L),sufix(L1,L2).
- comparatieliste([],[]):-write('Liste au numar egal de elemente').
- comparatieliste(X,[]):-write('Prima lista are mai multe elemente').
- comparatieliste([],X):-write('A doua lista are mai multe elemente').
- comparatieliste([X|R1],[Y|R2]):-comparatieliste(R1,R2).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement