Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Author:
- % Date: 10/18/2017
- barbat(andrei).
- barbat(cristi).
- barbat(ovidiu).
- barbat(marius).
- barbat(george).
- barbat(dragos).
- barbat(alexandru).
- barbat(doru).
- femeie(elena).
- femeie(manuela).
- femeie(oana).
- femeie(adriana).
- femeie(ana).
- femeie(denisa).
- femeie(mihaela).
- parinte(andrei,cristi).
- parinte(andrei,elena).
- parinte(cristi,adriana).
- parinte(cristi,marius).
- parinte(cristi,ovidiu).
- parinte(elena,ana).
- parinte(ana,george).
- cuplu(manuela,andrei).
- cuplu(elena,dragos).
- cuplu(ana,doru).
- cuplu(mihaela,george).
- cuplu(oana,cristi).
- cuplu(adriana,alexandru).
- cuplu(denisa,marius).
- cuplu(lavinia,ovidiu).
- cuplu(george,mihaela).
- frate(X,Y):-parinte(Z,X),parinte(Z,Y),X\=Y,barbat(X).
- sora(X,Y):-parinte(Z,X),parinte(Z,Y),X\=Y,femeie(X).
- fiu(X,Y):-parinte(Y,X),barbat(X).
- fiica(X,Y):-parinte(Y,X),femeie(X).
- soacra(X,Y):-cuplu(Z,X),cuplu(Y,W),fiica(Z,W),femeie(Y).
- soacra(X,Y):-cuplu(Z,X),cuplu(Y,W),fiu(Z,W),femeie(Y).
- soacra(X,Y):-cuplu(Z,X),fiica(Z,Y),femeie(Y).
- soacra(X,Y):-cuplu(X,Z),fiu(Z,Y),femeie(Y).
- copii(X):-parinte(X,Y),writeln(Y),fail.
- copii(_X).
- nepotii(X):-parinte(X,Y),parinte(Y,Z),writeln(Z),fail.
- nepotii(_X).
- descendenti(X):-copii(X),nepotii(X),writeln(X),fail.
- % -------------------------------------------------- %
- suma(A,B,S):-S is A+B.
- produs(A,B,P):-P is A*B.
- max(A,B,C):-A>B, A>C, Max=A, write('Maximul este '), write(Max).
- max(A,B,C):-B>A, B>C, Max=B, write('Maximul este '), write(Max).
- max(A,B,C):-C>A, C>B, Max=C, write('Maximul este '), write(Max).
- modul(A,X):-A<0, X is A*(-1).
- modul(A,X):-A>0, X is A.
- paritate(A):-X is (A mod 2), X=0, write('Numarul este par!').
- paritate(A):-X is (A mod 2), X\=0, write('Numarul este impar!').
- semn(A):-A<0, write('Numarul este negativ').
- semn(A):-A>0, write('Numarul este pozitiv').
- f1(X):-Z is (3*(X*X)-4), write(Z).
- f2(X):-Z is (4*(X*X)+2*x-3), write(Z).
- f3(X):-X>0, Z is (X-1), write(Z).
- f3(X):-X=<0, Z is 0, write(Z).
- f4(X):-modul(X,Y), Z is Y-4, write(Z).
- f5(X):-modul(X-3,Y), Z is 2*Y, write(Z).
- f6(X):-X>10, Z is (X*X+2), write(Z).
- f6(X):-X=<10, modul(X,Y), Z is Y-4, write(Z).
- nota(ion,4).
- nota(marius,8).
- nota(adriana,3).
- nota(carmen,10).
- stare(X):-nota(X,Y), Y>4, write('Promovat.').
- stare(X):-nota(X,Y), Y=<4, write('Nepromovat.').
- % ------------------------------------------------- %
- fx(A,B):-Y is (-B/A), write(Y).
- fx2(A,B,C):-A=0, B=0, Y is -C, write('A si B=0 => x='), write(Y).
- fx2(A,B,C):-A=0, Y is (-C/B), writeln('A=0 => ec. este de gr I; '), write('x='), write(Y).
- fx2(A,B,C):-Delta is (B*B-4*A*C), Delta<0, write('Ecuatia nu are solutii in R.').
- fx2(A,B,C):-Delta is (B*B-4*A*C), Delta=0, X1 is (-B/2*A), write(X1).
- fx2(A,B,C):-Delta is (B*B-4*A*C), Delta>0, X1 is (-B+(sqrt(Delta))/2*A), X2 is (-B-(sqrt(Delta))/2*A), write('x1='), writeln(X1), write('x2='), write(X2).
- % ------------------------------------------------- %
- cunoaste(maria,ana).
- cunoaste(ana,mircea).
- cunoaste(mircea,mihai).
- discuta_despre(A,B):-cunoaste(A,B).
- discuta_despre(X,Y):-cunoaste(X,Z),discuta_despre(Z,Y).
- % ------------------------------------------------- %
- factorial1(1,1).
- factorial1(N,F):-N1 is N-1,factorial1(N1,F1),F is F1*N.
- factorial2(1,F,F).
- factorial2(N,Ftemp,F):-Ftemp1 is Ftemp*N,N1 is N-1,factorial2(N1,Ftemp1,F).
- suman(1,1).
- suman(N,R):-N1 is N-1,suman(N1,R1), R is R1+N.
- suman2(1,1).
- suman2(N,R):-N1 is N-1,suman(N1,R1), R is (1/R1)+(1/N).
- fibbonaci(1,1).
- fibbonaci(2,1).
- fibbonaci(N,R):-N1 is N-1,N2 is N-2,fibbonaci(N1,R1),fibbonaci(N2,R2),R is R1+R2.
- ac(0,N,X):-X is N+1.
- ac(M,0,X):-M1 is M-1,ac(M1,1,X).
- ac(M,N,X):-M1 is M-1,N1 is N-1,ac(M,N1,X1),ac(M1,X1,X).
- cmmdc(M,N,X):-M=N,X=M.
- cmmdc(M,N,X):-M>N,T is M-N,cmmdc(T,N,X).
- cmmdc(M,N,X):-N>M,T is N-M,cmmdc(M,T,X).
- % ------------------------------------------------ %
- putere(N,0,1).
- putere(N,M,X):- M1 is M-1,putere(N,M1,X1),X is X1*N.
- numerepare(0):-writeln('0').
- numerepare(N):-N1 is N-1,X is N,A is (X mod 2),A=0,writeln(X),numerepare(N1).
- numerepare(N):-N1 is N-1,X is N,A is (X mod 2),A\=0,numerepare(N1).
- numere_continue(0):-writeln('0').
- numere_continue(N):-N1 is N-1,X is N,writeln(X),numere_continue(N1).
- divizor(N,K):-0 is (N mod K).
- divizori_numar(A,1).
- divizori_numar(A,N):-divizor(A,N),writeln(N),N1 is N-1,divizor(A,N1),writeln(N1),divizori_numar(A,N1).
- divizori_numar(A,N):-N1 is N-1,divizori_numar(A,N1).
- prim(X,Y):-Y>sqrt(X).
- prim(X,A):-A=<sqrt(X),not(divizor(X,A)),A1 is A+1, prim(X,A1).
- % --------------------LISTE---------------------- %
- afis([]).
- afis([X|R]):-writeln(X),afis(R).
- apartine(X,[X|_R]).
- apartine(X,[_Y|R]):-apartine(X,R).
- nr([],0).
- nr([X|R],N):-nr(R,N1),N is N1+1.
- ultim([X],X).
- ultim([X|R],Y):-ultim(R,Y).
- suma([], 0).
- suma([X|R],S):-suma(R,S1),S is S1 + X.
- suma_poz([], 0).
- suma_poz([X|R],S):-suma_poz(R,S1),X>0,S is S1 + X.
- suma_poz([X|R],S):-suma_poz(R,S).
- media(X):- nr(X,N),suma(X, S), M is S/N, write('Media elementelor din lsita este: '), write(M).
- maxL([X],X).
- maxL([X,Y|R],M):-X>=Y,maxL([X|R],M).
- maxL([X,Y|R],M):-X<Y,maxL([Y|R],M).
- %-----------------------------------------------------%
- copie([],[]).
- copie([X|R],[X|R2]):-copie(R,R2).
- sterge([],_,[]).
- sterge([X|R],Y,[X|R1]):-X\=Y,sterge(R,Y,R1).
- sterge([X|R],Y,R1):-sterge(R,Y,R1).
- invers([],Ltemp,L):-L=Ltemp.
- invers([X|R],Ltemp,L2):-Ltemp=[X|Ltemp],invers(R,Ltemp,L2).
- %--------lista elemente pare-----%
- pare([],[]).
- pare([X|R],[X|R1]):-Z is X mod 2,Z==0,pare(R,R1).
- pare([X|R],R1):-pare(R,R1).
- %------lissta pozitii pare----%
- pozitiipare([],[]).
- pozitiipare([X,Y|R],L):-L=[Y|Ltemp1],pozitiipare(R,Ltemp1).
- %------pozpare----%
- pozpare([],K,[]).
- pozpare([X|R],K,[X|R2]):-K1 is K+1,A is K1 mod 2,A==0,pozpare(R,K1,R2).
- pozpare([X|R],K,R2):-K1 is K+1,pozpare(R,K1,R2).
- %-------patratul listei-----------%
- patratL([],0).
- patratL([X|R],S):-patratL(R,S1),P is X*X,S is S1+P.
- %---------lista mai mare------%
- comparare([],[]):-writeln("Sunt egale").
- comparare([X],[]):-writeln("Prima este mai mare").
- comparare([],[X]):-writeln("A doua este mai mare").
- comparare([X|R1],[X|R2]):-comparare(R1,R2).
- %-------------pozitia pe care se gaseste elementul maxim-------------%
- maxL1([X],X,K).
- maxL1([X,Y|R],M,K):-K1 is K+1, X>=Y,maxL1([X|R],M,K1).
- maxL1([X,Y|R],M,K):-K1 is K+1 ,X<Y,maxL1([Y|R],M,K1).
- %--------------------%
- lista123([],M,N).
- lista123([X,Y|R],M,N):-X=M,Y=N,write('Sunt consecutive').
- lista123([X,Y|R],M,N):-X=N,Y=M,write('Sunt consecutive').
- lista123([X,Y|R],M,N):-lista123([Y|R],M,N).
- %-------------------%
- lista1234([]).
- lista1234([X|R]):-not(apartine(X,R)),lista1234(R).
- %-------------------%
- ps34([],[],0).
- ps34([X|R],[Y|R2],S):-nr([X|R],N),nr([Y|R],N2),N\=N2,write('Incorect').
- ps34([X|R],[Y|R2],S):-nr([X|R],N),nr([Y|R],N2),N=N2,ps34(R,R2,S1),S is S1+X*Y.
- %-------------------%
- interclasare([],[],[]).
- interclasare([X|R],[Y|R2],[X|R3]):-X=<Y,interclasare(R,[Y|R2],R3).
- interclasare(R,[Y|R2],[Y|R3]):-interclasare(R,R2,R3).
- %-------------------%
- lista9([],[]).
- lista9([X|R],L):-apartine(X,R),lista9(R,L).
- lista9([X|R],[X|L]):-lista9(R,L).
- %-------------------%
- prefix([],_).
- prefix([X|R1],[X|R2]):-prefix(R1,R2).
- %-------------------%
- ceva([],K,L).
- ceva(R,K,L):-L=[K|R].
- ceva(R,K,L):-copie(R,L).
- %--------Impartirea listelor in pare si impare---------------%
- split([],[],[]).
- split([X|R],L1,L2):-Y is X mod 2, Y==0, L1=[X|Ltemp1], split(R,Ltemp1,L2).
- split([X|R],L1,L2):-L2=[X|Ltemp2],split(R,L1,Ltemp2).
- %----pozitii pare si impare-----%
- p1([],[],[],K).
- p1([X|R],L1,L2,K):-K1 is K+1,N is K1 mod 2,N=0,L1=[X|Ltemp1],p1(R,Ltemp1,L2,K1).
- p1([X|R],L1,L2,K):-K1 is K+1,L2=[X|Ltemp2],p1(R,L1,Ltemp2,K1).
- %----lista elem--------%
- a([],N,T).
- a([X|R],N,T):-T1 is T+1,T1=N,write(X).
- a([X|R],N,T):-T1 is T+1, a(R,N,T1).
- b([],N,P).
- b([X|R],N,P):-P1 is P+1,X=N,write(P1).
- b([X|R],N,P):-P1 is P+1, b(R,N,P).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement