Differences

This shows you the differences between two versions of the page.

Link to this comparison view

jui:cviko8 [2011/08/16 22:33] (current)
Line 1: Line 1:
 +====== JUI - 8. cvičení - Prolog ======
  
 +prolog - uvod
 +
 +reprezentant logickeho programovani
 +  * relace
 +    *  unarni - mnozina
 +    *  binarni - mnozina dvojic
 +    *  ternrni - mnozina trojic
 +
 +  * atom - male pocatecni pismeno
 +  * promenna - velke pocatecni pismeno
 +  * klausule ​ (znamena relaci) - je zakoncena teckou ​
 +    * fakta
 +    * pravidlo ​  
 +  * ; logicke or
 +  * , logicke and                                  ​
 +      ​
 +<code prolog> ​     ​
 +%unarni relace
 +
 + muz (petr).
 + muz (pavel).
 + zena (Eva).
 + ​%pozor,​ musi byt hned za sebou, jinak se prepisou
 + 
 + ?- muz (petr).
 +  yes
 +  ​
 + ?- muz (eva).
 +   no
 +   
 + ?- muz(X).
 +   X = petr  ;
 +   X = pavel
 +   
 +% //komentar
 +% predek(?​Pred,​ ?Pot)
 +% ? oboji, - vystupni, + vstupni
 +
 ++
 +=:=  rovnost
 +=\= nerovnost
 +>
 +<
 +=<
 +>=
 +prirazeni
 + ​promenna is vyraz
 + X is 1 + 2
 +</​code> ​
 +
 +<​code>​
 +muz(pavel).
 +muz(petr).
 +
 +zena(iva).
 +zena(eva).
 +
 +manzele(petr,​eva).
 +manzele(pavel,​iva).
 +manzele(karel,​marie).
 +
 +rodic(petr,​josef).
 +rodic(eva,​josef).
 +rodic(pavel,​karel).
 +rodic(iva,​karel).
 +rodic(karel,​petrik).
 +
 +deda(D,V) :- otec(D,X), rodic(X,V).
 +tchyne(B,O) :- zena(B), rodic(B,X), manzele(O,​X).
 +tchyne(B,O) :- zena(B), rodic(B,X), manzele(X,​O).
 +
 +predek(P,O) :- rodic(P,O).
 +predek(P,O) :- rodic(P,X), predek(X,​O).
 + 
 +vzdalenost(P,​O,​V) :- rodic(P,O), V is 1.
 +%alternativne vzdalenost(P,​O,​1) := rodic(P,O).
 +vzdalenost(P,​O,​V) :- rodic(P,X), vzdalenost(X,​O,​W),​ V is W + 1.
 +
 +% abs (+C,-Vysl)
 +abs(C,Vysl) :- C >= 0, Vysl is C; Vysl is -C.
 +% fact (+C, -Vysl)
 +fact(0,1).
 +fact(C,V) :- C1 is C - 1, fact(C1,M), V is M *C.
 +</​code>​
 +
 +<​code>​
 +rez - zabranuje backtrackingu skrze rez
 +cykly - 
 + ​repeat,​ c1, c2, ... , cn , fail. %nekonecne-krat se opakuje
 +
 +vstup:- repeat,
 +        write ('​Zadej cislo:'​),​
 +        read (N),
 +        integer(N),
 +        N < 100,
 +        !.
 +
 +seznamy
 +</​code>​
jui/cviko8.txt · Last modified: 2011/08/16 22:33 (external edit)
Back to top
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0