Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clen(X,[X|T]).
- clen(X,[H|T]):-clen(X,T).
- % -----------------------------
- prunik([],_,[]).
- prunik([H|A],B,[H|V]):-clen(H,B),!,prunik(A,B,V).
- prunik([H|A],B,V):-prunik(A,B,V).
- %?- prunik([1,2,3,4,5],[2,8,4,6],V).
- % -----------------------------
- sjednoceni([],B,B).
- sjednoceni([H|A],B,[H|V]):-not(clen(H,B)),!,sjednoceni(A,B,V).
- sjednoceni([H|A],B,V):-sjednoceni(A,B,V).
- %kdyz je pouzit rez (!), nemusi byt v sjednoceni([H|A],B,V):-clen(H,B),sjednoceni(A,B,V).
- %?- sjednoceni([1,2,3,4],[2,3,4,5],V).
- % -----------------------------
- %rozdil A-B
- rozdil([],_,[]).
- rozdil([H|A],B,[H|V]):-not(clen(H,B)),rozdil(A,B,B).
- rozdil([H|A],B,V):-clen(H,B),rozdil(A,B,V).
- % -----------------------------
- cislo(1).
- cislo(2).
- cislo(3).
- pis:-cislo(X),write(X),nl,fail.
- %FAIL - nemuze skoncit. Od fail se odrazi a pomoci backtrackingu zkousi jine moznosti.
- %?- pis.
- pis. %jinak kvuli fail vypise "pis" no, tekhle vypise yes
- % -----------------------------
- slovo:-repeat,write('Zadej slovo'),read(X),((X=konec;X=stop),!,write(X),fail).
- %?- slovo.
- /*
- repeat nacita od uzivatele slova porad dokola
- kdyz neni fail, zepta se jedn jednou
- (X=konec,!,write(X),fail) podminka, aby se to nezacyklilo :-)
- ukonci se to pozadi slova "konec", nebo "stop"
- */
- % -----------------------------
- nasob:-vstup(X),N is X*X,write('Druha mocnina '),write(X),write(' je '),write(N),nl.
- %podprogram
- %?- nasob.
- vstup(X):-repeat,write('Zadej cislo v rozmezi 100-200'),nl,read(X),X>=100,X=<200,!.
- % -----------------------------
- termostat:-repeat,write('Je topeni zapnuto,vypnuto nebo ukonci program z/v/k: '),
- read(X),(X=k,!;write('Zadej teplotu: '),read(T),akce(X,T,V),write(V),fail).
- %?- termostat.
- akce(X,T,'Vypnete topeni'):-T>25,X=z,!.
- akce(X,T,'Zapnete topeni'):-T<25,X=v,!.
- akce(X,T,'Nedelej nic').
- % -----------------------------
Add Comment
Please, Sign In to add comment