Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.44 KB | None | 0 0
  1. % jestWyborem(+AEgraf, -Graf)
  2. jestWyborem(A, G) :- iteruj(A, G).
  3.  
  4. % iteruj(+AE, -G)
  5. % to się iteruje po grafie AE
  6. iteruj([], G).
  7. iteruj([I|Is], G) :- dlaKazdegoA(I, G, 0), iteruj(Is, G).
  8.  
  9. % dlaKazdegoA(+WierzcholekAE, -G, ZAPAMIETANY WIERZCHOLEK)
  10. % TODO, warunek na wiercholki E
  11. dlaKazdegoA([e|_], G, V).
  12. % wiercholoki a muszą spelniac warunek
  13. dlaKazdegoA([a|EDGES], G, V) :- ma_krawdedzie(V, EDGES, G).
  14.  
  15. % rozpakowanie listy
  16. dlaKazdegoA([V|X], G, 0) :- dlaKazdegoA(X, G, V).
  17.  
  18.  
  19. % szukamy wiercholka V w liscie [L1|L2]
  20. ma_krawdedzie(V, E, [L1|L2]) :- ma_krawdedzie2(V, E, L1).
  21. ma_krawdedzie(V, E, [L1|L2]) :- ma_krawdedzie(V, E, L2).
  22.  
  23. % jesli trzeci parametr reprezentuje wierzholek V, to odpal kolejna funkcje XD
  24. ma_krawdedzie2(V, E, [V|RE]) :- ma_krawdedzie3(E, RE).
  25.  
  26. % pierwszy parametr tej drugiej listy ignorujemy (to jest to a albo e) xD
  27. ma_krawdedzie3(E, [_|EDGES]) :- lista_zawiera_sie_w_liscie(E, EDGES).
  28.  
  29. lista_zawiera_sie_w_liscie([], EDG).
  30. lista_zawiera_sie_w_liscie([K|Ks], EDG) :- element_nalezy_do_list(K, EDG), lista_zawiera_sie_w_liscie(Ks, EDG).
  31.  
  32. % element_nalezy_do_list(Element, Lista)
  33. element_nalezy_do_list(E, [E|_]).
  34. element_nalezy_do_list(E, [_|ES]) :- element_nalezy_do_list(E, ES).
  35.  
  36. % [ [v0, a, v1, v3],[v1, e, v2, v3],[v2, a],[v3, a] ]
  37. % [ [v0, a, v1, v3],[v1, e, v2],[v2, a], [v3, a] ]
  38.  
  39. % jestWyborem([ [v0, a, v1, v3],[v1, e, v2, v3],[v2, a],[v3, a] ], [ [v0, a, v1, v3],[v1, e, v2],[v2, a], [v3, a] ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement