Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 3.11 KB | None | 0 0
  1. nalezy(E, [E|_]). % =member
  2.  
  3. nalezy(E,[_|T]):-
  4.     nalezy(E,T).
  5.    
  6.    
  7.    
  8. polacz([],L,L).
  9.  
  10. polacz([H|T],L,[H|T1]):-
  11.     polacz(T,L,T1).
  12.    
  13.    
  14.    
  15. %[...,E,...] = L (z tablicy)
  16.  
  17. %relacja nalezy z wykorzystaniem polacz
  18. nalezy_polacz(E,L):-
  19.     polacz(_,[E|_],L).
  20.    
  21.    
  22.    
  23. %element E1 znajduje sie wczesniej niz E2
  24.  
  25. wczesniej(E1,E2,L):-
  26.     polacz(X,[E1|T],L),
  27.     nalezy(E2,T).
  28.    
  29.    
  30.    
  31. dlugosc([],0).
  32.  
  33. dlugosc([H|T],N):-
  34.     dlugosc(T,N1),
  35.     N is N1+1.
  36.    
  37.    
  38.    
  39. it_dlugosc([],0).
  40.  
  41. it_dlugosc([H|T],N):-
  42.     it_dlugosc(T,1,N).
  43.  
  44. it_dlugosc([],A,A).
  45.  
  46. it_dlugosc([H|T],A,N):-
  47.     A1 is A+1,
  48.     it_dlugosc(T,A1,N).
  49.    
  50.  
  51.  
  52. %mozna od kogos wziac na_poczatek i na_koniec
  53.  
  54.  
  55.  
  56. odwroc([],[]). %lista pusta
  57.  
  58. odwroc([X],[X]). %1-elementowa    
  59.  
  60. odwroc([H|T],L):-
  61.     odwroc(T,T1),
  62.     polacz(T1,[H],L).
  63.    
  64.    
  65.  
  66. it_odwroc([],[]).
  67.  
  68. it_odwroc([X],[X]).
  69.  
  70. it_odwroc([H|T],L):-
  71.     it_odwroc(T,[H],L).
  72.    
  73. it_odwroc([],A,A).
  74.  
  75. it_odwroc([H|T],A,L):-
  76.     it_odwroc(T,[H|A],L).
  77.    
  78.  
  79. usun(E,[],[]).
  80.  
  81. usun(E,[E|T],T1):-
  82.     usun(E,T,T1).
  83.  
  84. usun(E,[H|T],[H|T1]):-
  85.     usun(E,T,T1).
  86.    
  87.  
  88.  
  89. it_usun(E,[],[]).
  90.  
  91. it_usun(E,)
  92.  
  93. %3.6 na przyszlych zajeciach (jako wejsciowka)!!!
  94. %przypomniec sobie algorytmy sortowania
  95. %sprawdzian 25.03
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. %--------------------------------------------
  103. %21.03
  104. %--------------------------------------------
  105.  
  106. usun_wieksze_od_piec(E,[]).
  107.  
  108. usun_wieksze_od_piec([E|T],T1):-
  109.     E>=5,
  110.     usun(T,T1).
  111.  
  112. usun_wieksze_od_piec([H|T],[H|T1]):-
  113.     H<5,
  114.     usun(T,T1).
  115.  
  116. i_usun_wieksze_od_piec(E,[]).
  117.  
  118. i_usun_wieksze_od_piec([E|T],T).
  119.  
  120. i_usun_wieksze_od_piec(L1,L2):-
  121.     i_usun(L1,[],L2).
  122.  
  123. i_usun_wieksze_od_piec([],A,A).
  124.  
  125. i_usun_wieksze_od_piec([E|T],A,L2):-
  126.     E>=5,
  127.     i_usun(T,A,L2).
  128.  
  129. i_usun_wieksze_od_piec([H|T],A,L2):-
  130.     H<5,
  131.     append(A,[H],A1),
  132.     i_usun(T,A1,L2).
  133.  
  134. przesun_piatki(E,[]).
  135.  
  136. przesun_piatki([E|T],T1):-
  137.     E==5,
  138.     append([E],[T],T1),
  139.     przesun_piatki(T,T1).
  140.  
  141. przesun_piatki([E|T],[E|T1]):-
  142.     E\=5,
  143.     przesun_piatki(T,T1).
  144.    
  145.  
  146. sort_wstawianie([],[]).
  147.  
  148. sort_wstawianie([E],[E]).
  149.  
  150. sort_wstawianie([H|T],L):-
  151.     sort_wstawianie(T,T1),
  152.     wstaw(H,T1,L).
  153.  
  154. wstaw(E,[],[E]).
  155.  
  156. wstaw(E,[H|T],[E,H|T]):- %[E,H|T] lista [E,H,T,T,T...]
  157.     E=<H.
  158.  
  159. wstaw(E,[H|T],[H|T1]):-
  160.     E>H,
  161.     wstaw(E,T,T1).
  162.    
  163. sort_wybieranie([],[]).
  164.  
  165. sort_wybieranie([E],[E]).
  166.  
  167. sort_wybieranie(L,[Min|T]):-
  168.     najmniejszy(L,Min,L1),
  169.     sort_wybieranie(L1,T).
  170.  
  171. najmniejszy([E],E,[]).
  172.  
  173. najmniejszy([H|T],M,[H|T1]):-
  174.     najmniejszy(T,M,T1),
  175.     M=<H.
  176.  
  177. najmniejszy([H|T],H,T):-
  178.     najmniejszy(T,M,_),
  179.     M>H.
  180.    
  181. quicksort([],[]).
  182.  
  183. quicksort([E],[E]).
  184.  
  185. quicksort([H|T],L):-
  186.     rozdziel(T,H,T1,T2),
  187.     quicksort(T1,T11),
  188.     quicksort(T2,T22),
  189.     append(T11,[H|T22],L).
  190.  
  191. rozdziel([],_,[],[]).
  192.  
  193. rozdziel([H|T],E,[H|T1],T2):-
  194.     rozdziel(T,E,T1,T2),
  195.     H=<E.
  196.  
  197. rozdziel([H|T],E,T1,[H|T2]):-
  198.     rozdziel(T,E,T1,T2),
  199.     H>E.
  200.    
  201. splec(L1,L2,L3):- %L1 i L2 sa uporzadkowane. Splec zwraca uporzadkowana liste skladajaca sie z L1, L2 i L3.
  202.  
  203. %wejsciowka metapredykaty sterujace + indywidualne zadanie
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement