Advertisement
mvujas

Prolog 31/01/2017

Jan 31st, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 0.96 KB | None | 0 0
  1. :- writeln('*******************'),
  2.     writeln('Prolog is fun! :)'),
  3.     writeln('31/01/2017'),
  4.     writeln('*******************').
  5.  
  6. /* Zadatcha 1: Sve kombinacije neke liste duzine N,
  7.  * a elementi liste slova O(0) i P(1),
  8.  * i ne smeju 2 slova P jedno pored drugog */
  9. zad1(N, L):- proc1(N, 'O', L).
  10. proc1(0, _, []).
  11. proc1(N, Last, [ 'O' | L1]):- N > 0,
  12.     Last == 'P',
  13.     N1 is N - 1,
  14.     proc1(N1, 'O', L1).
  15. proc1(N, _, [ 'O' | L1 ]):- N > 0,
  16.     N1 is N - 1,
  17.     proc1(N1, 'O', L1).
  18. proc1(N, Last, [ 'P' | L1 ]):- N > 0,
  19.     Last == 'O',
  20.     N1 is N - 1,
  21.     proc1(N1, 'P', L1).
  22.  
  23. zad2(_, [], G, G).
  24. zad2([ G1 | R1 ], [ G2 | R2 ], K, N):- G1 == G2,
  25.     zad2(R1, R2, K, N).
  26. zad2([ G1 | R1 ], [ G2 | R2 ], K, N):- G1 == G2,
  27.     K1 is K + 1,
  28.     zad2(R1, [ G2 | R2], K1, N).
  29. zad2([ G1 | R1 ], [ G2 | R2 ], K, N):- not(G1 == G2),
  30.     K1 is K + 1,
  31.     zad2(R1, [ G2 | R2 ], K1, N).
  32.  
  33.  
  34. zadnji([ E ], E).
  35. zadnji([ _ | R ], E):- zadnji(R, E).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement