Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.67 KB | None | 0 0
  1. % Author:
  2. % Date: 10/18/2017
  3.  
  4. barbat(andrei).
  5. barbat(cristi).
  6. barbat(ovidiu).
  7. barbat(marius).
  8. barbat(george).
  9. barbat(dragos).
  10. barbat(alexandru).
  11. barbat(doru).
  12. femeie(elena).
  13. femeie(manuela).
  14. femeie(oana).
  15. femeie(adriana).
  16. femeie(ana).
  17. femeie(denisa).
  18. femeie(mihaela).
  19. parinte(andrei,cristi).
  20. parinte(andrei,elena).
  21. parinte(cristi,adriana).
  22. parinte(cristi,marius).
  23. parinte(cristi,ovidiu).
  24. parinte(elena,ana).
  25. parinte(ana,george).
  26. cuplu(manuela,andrei).
  27. cuplu(elena,dragos).
  28. cuplu(ana,doru).
  29. cuplu(mihaela,george).
  30. cuplu(oana,cristi).
  31. cuplu(adriana,alexandru).
  32. cuplu(denisa,marius).
  33. cuplu(lavinia,ovidiu).
  34. cuplu(george,mihaela).
  35. frate(X,Y):-parinte(Z,X),parinte(Z,Y),X\=Y,barbat(X).
  36. sora(X,Y):-parinte(Z,X),parinte(Z,Y),X\=Y,femeie(X).
  37. fiu(X,Y):-parinte(Y,X),barbat(X).
  38. fiica(X,Y):-parinte(Y,X),femeie(X).
  39. soacra(X,Y):-cuplu(Z,X),cuplu(Y,W),fiica(Z,W),femeie(Y).
  40. soacra(X,Y):-cuplu(Z,X),cuplu(Y,W),fiu(Z,W),femeie(Y).
  41. soacra(X,Y):-cuplu(Z,X),fiica(Z,Y),femeie(Y).
  42. soacra(X,Y):-cuplu(X,Z),fiu(Z,Y),femeie(Y).
  43. copii(X):-parinte(X,Y),writeln(Y),fail.
  44. copii(_X).
  45. nepotii(X):-parinte(X,Y),parinte(Y,Z),writeln(Z),fail.
  46. nepotii(_X).
  47. descendenti(X):-copii(X),nepotii(X),writeln(X),fail.
  48. % -------------------------------------------------- %
  49. suma(A,B,S):-S is A+B.
  50. produs(A,B,P):-P is A*B.
  51. max(A,B,C):-A>B, A>C, Max=A, write('Maximul este '), write(Max).
  52. max(A,B,C):-B>A, B>C, Max=B, write('Maximul este '), write(Max).
  53. max(A,B,C):-C>A, C>B, Max=C, write('Maximul este '), write(Max).
  54. modul(A,X):-A<0, X is A*(-1).
  55. modul(A,X):-A>0, X is A.
  56. paritate(A):-X is (A mod 2), X=0, write('Numarul este par!').
  57. paritate(A):-X is (A mod 2), X\=0, write('Numarul este impar!').
  58. semn(A):-A<0, write('Numarul este negativ').
  59. semn(A):-A>0, write('Numarul este pozitiv').
  60. f1(X):-Z is (3*(X*X)-4), write(Z).
  61. f2(X):-Z is (4*(X*X)+2*x-3), write(Z).
  62. f3(X):-X>0, Z is (X-1), write(Z).
  63. f3(X):-X=<0, Z is 0, write(Z).
  64. f4(X):-modul(X,Y), Z is Y-4, write(Z).
  65. f5(X):-modul(X-3,Y), Z is 2*Y, write(Z).
  66. f6(X):-X>10, Z is (X*X+2), write(Z).
  67. f6(X):-X=<10, modul(X,Y), Z is Y-4, write(Z).
  68. nota(ion,4).
  69. nota(marius,8).
  70. nota(adriana,3).
  71. nota(carmen,10).
  72. stare(X):-nota(X,Y), Y>4, write('Promovat.').
  73. stare(X):-nota(X,Y), Y=<4, write('Nepromovat.').
  74. % ------------------------------------------------- %
  75. fx(A,B):-Y is (-B/A), write(Y).
  76. fx2(A,B,C):-A=0, B=0, Y is -C, write('A si B=0 => x='), write(Y).
  77. fx2(A,B,C):-A=0, Y is (-C/B), writeln('A=0 => ec. este de gr I; '), write('x='), write(Y).
  78. fx2(A,B,C):-Delta is (B*B-4*A*C), Delta<0, write('Ecuatia nu are solutii in R.').
  79. fx2(A,B,C):-Delta is (B*B-4*A*C), Delta=0, X1 is (-B/2*A), write(X1).
  80. 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).
  81. % ------------------------------------------------- %
  82. cunoaste(maria,ana).
  83. cunoaste(ana,mircea).
  84. cunoaste(mircea,mihai).
  85. discuta_despre(A,B):-cunoaste(A,B).
  86. discuta_despre(X,Y):-cunoaste(X,Z),discuta_despre(Z,Y).
  87. % ------------------------------------------------- %
  88. factorial1(1,1).
  89. factorial1(N,F):-N1 is N-1,factorial1(N1,F1),F is F1*N.
  90. factorial2(1,F,F).
  91. factorial2(N,Ftemp,F):-Ftemp1 is Ftemp*N,N1 is N-1,factorial2(N1,Ftemp1,F).
  92. suman(1,1).
  93. suman(N,R):-N1 is N-1,suman(N1,R1), R is R1+N.
  94. suman2(1,1).
  95. suman2(N,R):-N1 is N-1,suman(N1,R1), R is (1/R1)+(1/N).
  96. fibbonaci(1,1).
  97. fibbonaci(2,1).
  98. fibbonaci(N,R):-N1 is N-1,N2 is N-2,fibbonaci(N1,R1),fibbonaci(N2,R2),R is R1+R2.
  99. ac(0,N,X):-X is N+1.
  100. ac(M,0,X):-M1 is M-1,ac(M1,1,X).
  101. ac(M,N,X):-M1 is M-1,N1 is N-1,ac(M,N1,X1),ac(M1,X1,X).
  102. cmmdc(M,N,X):-M=N,X=M.
  103. cmmdc(M,N,X):-M>N,T is M-N,cmmdc(T,N,X).
  104. cmmdc(M,N,X):-N>M,T is N-M,cmmdc(M,T,X).
  105. % ------------------------------------------------ %
  106. putere(N,0,1).
  107. putere(N,M,X):- M1 is M-1,putere(N,M1,X1),X is X1*N.
  108. numerepare(0):-writeln('0').
  109. numerepare(N):-N1 is N-1,X is N,A is (X mod 2),A=0,writeln(X),numerepare(N1).
  110. numerepare(N):-N1 is N-1,X is N,A is (X mod 2),A\=0,numerepare(N1).
  111. numere_continue(0):-writeln('0').
  112. numere_continue(N):-N1 is N-1,X is N,writeln(X),numere_continue(N1).
  113. divizor(N,K):-0 is (N mod K).
  114. divizori_numar(A,1).
  115. divizori_numar(A,N):-divizor(A,N),writeln(N),N1 is N-1,divizor(A,N1),writeln(N1),divizori_numar(A,N1).
  116. divizori_numar(A,N):-N1 is N-1,divizori_numar(A,N1).
  117. prim(X,Y):-Y>sqrt(X).
  118. prim(X,A):-A=<sqrt(X),not(divizor(X,A)),A1 is A+1, prim(X,A1).
  119. % --------------------LISTE---------------------- %
  120. afis([]).
  121. afis([X|R]):-writeln(X),afis(R).
  122. apartine(X,[X|_R]).
  123. apartine(X,[_Y|R]):-apartine(X,R).
  124. nr([],0).
  125. nr([X|R],N):-nr(R,N1),N is N1+1.
  126. ultim([X],X).
  127. ultim([X|R],Y):-ultim(R,Y).
  128. suma([], 0).
  129. suma([X|R],S):-suma(R,S1),S is S1 + X.
  130. suma_poz([], 0).
  131. suma_poz([X|R],S):-suma_poz(R,S1),X>0,S is S1 + X.
  132. suma_poz([X|R],S):-suma_poz(R,S).
  133. media(X):- nr(X,N),suma(X, S), M is S/N, write('Media elementelor din lsita este: '), write(M).
  134. maxL([X],X).
  135. maxL([X,Y|R],M):-X>=Y,maxL([X|R],M).
  136. maxL([X,Y|R],M):-X<Y,maxL([Y|R],M).
  137. %-----------------------------------------------------%
  138. copie([],[]).
  139. copie([X|R],[X|R2]):-copie(R,R2).
  140. sterge([],_,[]).
  141. sterge([X|R],Y,[X|R1]):-X\=Y,sterge(R,Y,R1).
  142. sterge([X|R],Y,R1):-sterge(R,Y,R1).
  143. invers([],Ltemp,L):-L=Ltemp.
  144. invers([X|R],Ltemp,L2):-Ltemp=[X|Ltemp],invers(R,Ltemp,L2).
  145. %--------lista elemente pare-----%
  146. pare([],[]).
  147. pare([X|R],[X|R1]):-Z is X mod 2,Z==0,pare(R,R1).
  148. pare([X|R],R1):-pare(R,R1).
  149. %------lissta pozitii pare----%
  150. pozitiipare([],[]).
  151. pozitiipare([X,Y|R],L):-L=[Y|Ltemp1],pozitiipare(R,Ltemp1).
  152. %------pozpare----%
  153. pozpare([],K,[]).
  154. pozpare([X|R],K,[X|R2]):-K1 is K+1,A is K1 mod 2,A==0,pozpare(R,K1,R2).
  155. pozpare([X|R],K,R2):-K1 is K+1,pozpare(R,K1,R2).
  156. %-------patratul listei-----------%
  157. patratL([],0).
  158. patratL([X|R],S):-patratL(R,S1),P is X*X,S is S1+P.
  159. %---------lista mai mare------%
  160. comparare([],[]):-writeln("Sunt egale").
  161. comparare([X],[]):-writeln("Prima este mai mare").
  162. comparare([],[X]):-writeln("A doua este mai mare").
  163. comparare([X|R1],[X|R2]):-comparare(R1,R2).
  164. %-------------pozitia pe care se gaseste elementul maxim-------------%
  165. maxL1([X],X,K).
  166. maxL1([X,Y|R],M,K):-K1 is K+1, X>=Y,maxL1([X|R],M,K1).
  167. maxL1([X,Y|R],M,K):-K1 is K+1 ,X<Y,maxL1([Y|R],M,K1).
  168. %--------------------%
  169. lista123([],M,N).
  170. lista123([X,Y|R],M,N):-X=M,Y=N,write('Sunt consecutive').
  171. lista123([X,Y|R],M,N):-X=N,Y=M,write('Sunt consecutive').
  172. lista123([X,Y|R],M,N):-lista123([Y|R],M,N).
  173. %-------------------%
  174. lista1234([]).
  175. lista1234([X|R]):-not(apartine(X,R)),lista1234(R).
  176. %-------------------%
  177. ps34([],[],0).
  178. ps34([X|R],[Y|R2],S):-nr([X|R],N),nr([Y|R],N2),N\=N2,write('Incorect').
  179. 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.
  180. %-------------------%
  181. interclasare([],[],[]).
  182. interclasare([X|R],[Y|R2],[X|R3]):-X=<Y,interclasare(R,[Y|R2],R3).
  183. interclasare(R,[Y|R2],[Y|R3]):-interclasare(R,R2,R3).
  184. %-------------------%
  185. lista9([],[]).
  186. lista9([X|R],L):-apartine(X,R),lista9(R,L).
  187. lista9([X|R],[X|L]):-lista9(R,L).
  188. %-------------------%
  189. prefix([],_).
  190. prefix([X|R1],[X|R2]):-prefix(R1,R2).
  191. %-------------------%
  192. ceva([],K,L).
  193. ceva(R,K,L):-L=[K|R].
  194. ceva(R,K,L):-copie(R,L).
  195.  
  196. %--------Impartirea listelor in pare si impare---------------%
  197. split([],[],[]).
  198. split([X|R],L1,L2):-Y is X mod 2, Y==0, L1=[X|Ltemp1], split(R,Ltemp1,L2).
  199. split([X|R],L1,L2):-L2=[X|Ltemp2],split(R,L1,Ltemp2).
  200. %----pozitii pare si impare-----%
  201. p1([],[],[],K).
  202. 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).
  203. p1([X|R],L1,L2,K):-K1 is K+1,L2=[X|Ltemp2],p1(R,L1,Ltemp2,K1).
  204. %----lista elem--------%
  205. a([],N,T).
  206. a([X|R],N,T):-T1 is T+1,T1=N,write(X).
  207. a([X|R],N,T):-T1 is T+1, a(R,N,T1).
  208.  
  209. b([],N,P).
  210. b([X|R],N,P):-P1 is P+1,X=N,write(P1).
  211. b([X|R],N,P):-P1 is P+1, b(R,N,P).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement