Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze | ||
pitel:izu:uloha2 [03. 07. 2012, 11.53:43] – upraveno mimo DokuWiki 127.0.0.1 | pitel:izu:uloha2 [30. 12. 2022, 13.43:01] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Úkol 2 ====== | ||
+ | <file prolog rodina.pl> | ||
+ | muz(iluvatar). | ||
+ | muz(elros). | ||
+ | muz(elrond). | ||
+ | muz(john). | ||
+ | muz(paul). | ||
+ | muz(george). | ||
+ | muz(ringo). | ||
+ | zena(clare). | ||
+ | zena(lucy). | ||
+ | zena(mary). | ||
+ | zena(jane). | ||
+ | zena(linda). | ||
+ | |||
+ | otec(iluvatar, | ||
+ | otec(iluvatar, | ||
+ | otec(elros, | ||
+ | otec(elros, | ||
+ | otec(elrond, | ||
+ | otec(elrond, | ||
+ | otec(paul, | ||
+ | otec(george, | ||
+ | otec(john, | ||
+ | otec(john, | ||
+ | |||
+ | matka(clare, | ||
+ | matka(lucy, | ||
+ | matka(linda, | ||
+ | matka(mary, | ||
+ | |||
+ | |||
+ | rodic(X,Y) :- otec(X,Y). | ||
+ | rodic(X,Y) :- matka(X,Y). | ||
+ | |||
+ | je_matka(X) :- matka(X,_). | ||
+ | |||
+ | %tyto pravidla doplnte | ||
+ | sourozenec(X, | ||
+ | teta(X,Y) :- sestra(X , R), rodic(R, Y). | ||
+ | sestra(X,Y) :- zena(X), sourozenec(X, | ||
+ | deda(X,Y) :- muz(X), rodic(R, Y), rodic(X, R). | ||
+ | </ | ||
+ | <file prolog seznamy.pl> | ||
+ | %delka linearniho seznamu | ||
+ | delka([], | ||
+ | delka([_|T], | ||
+ | |||
+ | %je prvek clenem lin. seznamu? | ||
+ | jePrvek([X|_], | ||
+ | jePrvek([_|T], | ||
+ | |||
+ | %spojeni dvou linearnich seznamu | ||
+ | spoj([], | ||
+ | spoj([H|T], | ||
+ | |||
+ | |||
+ | |||
+ | %doplnte nasledujici predikaty | ||
+ | |||
+ | %doplnte nasledujici predikaty | ||
+ | |||
+ | max(A, B, MAX) :- A>=B, MAX is A. | ||
+ | max(A, B, MAX) :- A<B, MAX is B. | ||
+ | |||
+ | %otoceni linearniho seznamu | ||
+ | %otoc(seznam, | ||
+ | otoc([], []). | ||
+ | otoc([H|T], L) :- otoc(T, ZBYTEK), spoj(ZBYTEK, | ||
+ | |||
+ | %je prvek clenem obecneho seznamu? | ||
+ | %jePrvekOb(prvek, | ||
+ | jePrvekOb(X, | ||
+ | jePrvekOb(X, | ||
+ | jePrvekOb(X, | ||
+ | |||
+ | %delka obecneho seznamu | ||
+ | %delkaOb(seznam, | ||
+ | delkaOb([], 0). %Delka prazdneho seznamu je 0 | ||
+ | delkaOb([H|T], | ||
+ | delkaOb(_, 1). %Delka jednoho prvku je 1 | ||
+ | |||
+ | %nalezeni maxima v obecnem seznamu prvku typu integer | ||
+ | %maximumOb(seznam, | ||
+ | maximumOb(SEZNAM, | ||
+ | |||
+ | maximumOb_max([], | ||
+ | maximumOb_max([H|T], | ||
+ | maximumOb_max([H|T], | ||
+ | |||
+ | %hloubka zanoreni obecneho seznamu | ||
+ | %hloubkaOb(seznam, | ||
+ | |||
+ | hloubkaOb(SEZNAM, | ||
+ | hloubkaOb_max([], | ||
+ | hloubkaOb_max([H|T], | ||
+ | hloubkaOb_max([H|T], | ||
+ | </ |