madalinaradu

Laboratoare prolog

Dec 17th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.21 KB | None | 0 0
  1. pozmaximl2([],Mt,M,N,Poz,P):-M=Mt,P=Poz.
  2.     pozmaximl2([X|R],Mt,M,N,Poz,P):-X=<Mt,N1 is N+1,pozmaximl2(R,Mt,M,N1,Poz,P).
  3.     pozmaximl2([X|R],Mt,M,N,Poz,P):-X>Mt,Poz1 is N,N1 is N+1,pozmaximl2(R,X,M,N1,Poz1,P).
  4.     pozmaximl([X|R],M,P):-pozmaximl2(R,X,M,2,1,P).
  5.     prefix([],L).
  6.     prefix([X|R1],[X|R2]):-prefix(R1,R2).
  7.     sufix(L,L).
  8.     sufix(L,[X|R]):-sufix(L,R).
  9.     sublista(L1,L):-prefix(L2,L),sufix(L1,L2).
  10.  
  11.  
  12.  
  13.     comparatieliste([],[]):-write('Liste au numar egal de elemente').
  14.     comparatieliste(X,[]):-write('Prima lista are mai multe elemente').
  15.     comparatieliste([],X):-write('A doua lista are mai multe elemente').
  16.     comparatieliste([X|R1],[Y|R2]):-comparatieliste(R1,R2).
  17.  
  18.  
  19.     elemconsec([X1,X2|R],X2,X1):-write('Cele doua elemente se afla consecutiv in lista').
  20.     elemconsec([X1,X2|R],X1,X2):-write('Cele doua elemente se afla consecutiv in lista').
  21.     elemconsec([X1,X2|R],Y,Z):-elemconsec([X2|R],Y,Z).
  22.  
  23.     interclasare(X,[],X).
  24.     interclasare([],X,X).
  25.     interclasare([X1|R1],[X2|R2],[X2|R3]):-X1>X2,interclasare([X1|R1],R2,R3).
  26.     interclasare([X1|R1],[X2|R2],[X1|R3]):-X1<X2,interclasare(R1,[X2|R2],R3).
  27.     interclasare([X1|R1],[X1|R2],[X1|R3]):-interclasare(R1,R2,R3).
  28.    
  29.    
  30.     apartine(A,[A|R]).
  31.     apartine(X,[A|R]):-A\=X,apartine(X,R).
  32.     multime([]).
  33.     multime([X|R]):-not(apartine(X,R)),multime(R).
  34.    
  35.     pozitiei([X|R],1,X).
  36.     pozitiei([Z|R],I,X):-I1 is I-1,pozitiei(R,I1,X).
  37.    
  38.    
  39.     pozitieelement([X|R],P,X,P).
  40.     pozitieelement([Z|R],I,X,P):-I1 is I+1,pozitieelement(R,I1,X,P).
  41.  
  42.  
  43.     parimpar([], [], []).
  44.     parimpar([P|R1], L2, [P|R2]) :- Rest is P mod 2, Rest == 1, parimpar(R1, L2, R2).
  45.     parimpar([P|R1], [P|R2], L2) :- Rest is P mod 2, Rest == 0, parimpar(R1, R2, L2).
  46.    
  47.     produsscalar([],[],X,X).
  48.     produsscalar([Z|R1],[Y|R2],X,P):-X1 is X+(Z*Y),produsscalar(R1,R2,X1,P).
  49.  
  50.     pozparimpar([], [], [], I).
  51.     pozparimpar([P|R1], L2, [P|R2], I) :- Rest is I mod 2, Rest == 1,I1 is I+1, pozparimpar(R1, L2, R2,I1).
  52.     pozparimpar([P|R1], [P|R2], L2, I) :- Rest is I mod 2, Rest == 0,I1 is I+1, pozparimpar(R1, R2, L2,I1).
  53.    
  54.     adaugareelement([X|[]],[X|[Y]],Y).
  55.     adaugareelement([X|R],[X|R2],Y):-adaugareelement(R,R2,Y).
Add Comment
Please, Sign In to add comment