ϵ">]>
2. CVIČENIE Z PREDMETU ÚVOD DO DEKLARATÍVNEHO PROGRAMOVANIA 2013/2014
ČASŤ B
http://dai.fmph.uniba.sk/courses/udp/ex/ex02.zip
Dátum: 25. a 26. 2. 2014
Odporúčaná verzia CL: 5.81.20
WWW stránka predmetu: http://dai.fmph.uniba.sk/courses/udp
Kontakt: udp(zavináč)lists.dai.fmph.uniba.sk
Úvodná poznámka. Toto cvičenie je venované definíciám funkcií primitívnou rekurziou (ex02a) a všeobecnou rekurziou (ex02b).
Literatúra.
[1] J. Kľuka. Prednášky z Úvodu do deklaratívneho programovania LS 2013/2014.
http://dai.fmph.uniba.sk/courses/udp/udp-prednasky-2014.pdf
[2] D. Guller. Poznámky k prednáškam z CL.
[3] J. Komara and P. J. Voda. Metamathematics of Computer Programming. 2001.
Úloha. Celočíselné delenie. Predpokladajte, že máte k dispozícii iba zabudované sčítanie, odčítanie a diskriminácie. Všeobecnou rekurziou zadefinujte funkciu , ktorej hodnotou je podiel pri celočíselnom delení čísla číslom .
Špecifikácia:
(Div0) |
(Div_quotient) |
Úloha. Zvyšok po celočíselnom delení. Predpokladajte, že máte k dispozícii iba zabudované sčítanie, odčítanie a diskriminácie. Všeobecnou rekurziou zadefinujte funkciu , ktorej hodnotou je zvyšok po celočíselnom delení čísla číslom .
Špecifikácia:
(Mod0) |
(Mod_remainder) |
Úloha. Fibonacciho postupnosť. Všeobecnou rekurziou zadefinujte funkciu počítajúcu -tý prvok Fibonacciho postupnosti.
Špecifikácia:
Úloha. Najväčší spoločný deliteľ. Všeobecnou rekurziou zadefinujte funkciu počítajúcu najväčší spoločný deliteľ čísel a využitím vlastností
Pri definícii budete potrebovať v rekurzívnom volaní zmeniť aj druhý, nerekurzívny argument. Tento typ rekurzie sa nazýva rekurzia so substitúciou v parametri.
Špecifikácia:
(Gcd_divisor) |
(Gcd_greatest) |
Prémiová domáca úloha du02, časť b). Pravidlá pre prémiové domáce úlohy nájdete na http://dai.fmph.uniba.sk/courses/udp#pdu.
Časť a) sa nachádza v ex02a.
b) (2 body) Dokážte, že pre vašu definíciu funkcie platí vyššie uvedená vlastnosť (Mod_remainder). Využite úplnú indukciu a všeobecne známe vlastnosti sčítania, násobenia (asociatívnosť, komutatívnosť, krátenie a distributívnosť) a vlastnosti modifikovaného odčítania spomenuté na prvej prednáške. Uvedomte si, že premenná predstavuje celočíselný podiel.