Guest User

Untitled

a guest
Apr 15th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.85 KB | None | 0 0
  1. clen(X,[X|T]).
  2. clen(X,[H|T]):-clen(X,T).
  3.  
  4. % -----------------------------
  5.  
  6. prunik([],_,[]).
  7. prunik([H|A],B,[H|V]):-clen(H,B),!,prunik(A,B,V).
  8. prunik([H|A],B,V):-prunik(A,B,V).
  9.  
  10. %?- prunik([1,2,3,4,5],[2,8,4,6],V).
  11.  
  12. % -----------------------------
  13.  
  14. sjednoceni([],B,B).
  15. sjednoceni([H|A],B,[H|V]):-not(clen(H,B)),!,sjednoceni(A,B,V).
  16. sjednoceni([H|A],B,V):-sjednoceni(A,B,V).
  17.  
  18. %kdyz je pouzit rez (!), nemusi byt v sjednoceni([H|A],B,V):-clen(H,B),sjednoceni(A,B,V).
  19.  
  20. %?- sjednoceni([1,2,3,4],[2,3,4,5],V).
  21.  
  22. % -----------------------------
  23.  
  24. %rozdil A-B
  25. rozdil([],_,[]).
  26. rozdil([H|A],B,[H|V]):-not(clen(H,B)),rozdil(A,B,B).
  27. rozdil([H|A],B,V):-clen(H,B),rozdil(A,B,V).
  28.  
  29. % -----------------------------
  30.  
  31. cislo(1).
  32. cislo(2).
  33. cislo(3).
  34.  
  35. pis:-cislo(X),write(X),nl,fail.
  36. %FAIL - nemuze skoncit. Od fail se odrazi a pomoci backtrackingu zkousi jine moznosti.
  37. %?- pis.
  38. pis.  %jinak kvuli fail vypise "pis" no, tekhle vypise yes
  39.  
  40.  
  41. % -----------------------------
  42.  
  43. slovo:-repeat,write('Zadej slovo'),read(X),((X=konec;X=stop),!,write(X),fail).
  44.  
  45. %?- slovo.
  46.  
  47. /*
  48. repeat nacita od uzivatele slova porad dokola
  49.  kdyz neni fail, zepta se jedn jednou
  50.  (X=konec,!,write(X),fail)   podminka, aby se to nezacyklilo :-)
  51.  ukonci se to pozadi slova "konec", nebo "stop"
  52. */
  53.  
  54. % -----------------------------
  55.  
  56. nasob:-vstup(X),N is X*X,write('Druha mocnina '),write(X),write(' je '),write(N),nl.
  57. %podprogram
  58.  
  59. %?- nasob.
  60.  
  61. vstup(X):-repeat,write('Zadej cislo v rozmezi 100-200'),nl,read(X),X>=100,X=<200,!.
  62.  
  63. % -----------------------------
  64.  
  65. termostat:-repeat,write('Je topeni zapnuto,vypnuto nebo ukonci program z/v/k: '),
  66.     read(X),(X=k,!;write('Zadej teplotu: '),read(T),akce(X,T,V),write(V),fail).
  67.  
  68. %?- termostat.
  69.  
  70. akce(X,T,'Vypnete topeni'):-T>25,X=z,!.
  71. akce(X,T,'Zapnete topeni'):-T<25,X=v,!.
  72. akce(X,T,'Nedelej nic').
  73.  
  74. % -----------------------------
Add Comment
Please, Sign In to add comment