Micro Gallery of Art
Update: 6th Mar 2018
Copyright © 2003-2013
Neprocedurální programování (PRG005 - Informatici) Cvičení se koná každý čtvrtek od 9:00 v učebně S10 (Malá Strana). Na této stánce budou postupně uveřejňovány informace týkající se průběhu cvičení.
Cvičení 12.10.2006
Probírala se unifikace jako způsob předávání parametrů. Dále se probíraly jednoduché predikáty na odpovídání, zda platí daný příbuzenský vztah za předpokladu, že platí fakta uvedená v databázi faktů. Většina cvičení byla věnována unární aritmetice, probíraly se predikáty realizující sčítání, násobení a "opatrné" odčítání (zatím pouze tak, že volná proměnná odpovídá výsledku operace).
Cvičení 19.10.2006
Procvičovaly se seznamy na základních operacích - member(+Seznam, +Prvek), append(+Seznam, +Prvek, -Výsledek), sjednoceni(+Seznam1, +Seznam2, -Výsledek), sudé_liché(+Seznam, -Sudé, -Liché). Na rozmyšlenou do příště zbyl predikát pro permutaci (permutace(+Seznam, +Permutovaný) a permutace(+Seznam, -Permutovaný)), transpozice matice ([[1,2,3], [a,b,c]] přejde na [[1,a], [2,b], [3,c]]) a náhrada seznamu pomocí jiné struktury.
Cvičení 26.10.2006
Cvičení 2.11.2006
Procvičovala se aritmetika v Prologu - výpočet Fibonacciho čísla, faktoriál, největší společný dělitel, délka seznamu a počet transpozic v seznamu čísel. Dále se procvičovala reprezentacu grafů (varianty: orientovaný, neorientovaný, ohodnocené hrany, ohodnocené vrcholy) a základní grafové algoritmy - nejkratší cesta, minimální kostra, barvení vrcholů. Dále jsme se zabývali úlohami na prohledávání stavového prostoru - proskákání šachovnice koněm, N královen, přelévání vody a vlk-koza-zelí. Složitější úlohy zbyly na příště.
Cvičení 9.11.2006
Několik informací k zápočtovým programům v Prologu: Téma zápočtového programu lze získat na internetových stránkách dalších vyučujících předmětu Neprocedurální programování. Vybrané téma je potom nutné si nechat schválit (stačí mi poslat email s popisem tématu či s odkazem na zdroj). Hotové dílo pro odevzdání by mělo obsahovat smotný program, dokumentaci (uživatelskou, algoritmickou - popis použitých algoritmů, programovou) a testovací data. Pro ladění programu je nevhodnější použít nějký Prolog dostupný v počítačové laboratoři (třeba SWI Prolog).
Cvičení 16.11.2006
Cvičení 23.11.2006
Probíraly se technické aspekty Prologu. Definice nových operátorů - operátor pro sjednocení (\_/), průnik (/-\) a vyhodnocní těchto operací (is_set). Přidávání a odebírání klauzulí v databázi (assert, retract). Sbírání všech možných řešení (setof, bagof, findall). Řez, k čemu je, jak funguje. Na ilustračním příkladu jsme zkoumali paradoxní chování řezu. Začal se procvičovat Scheme - výpočet n-tého Fibonacciho čísla, výpočet třetí odmocniny.
Cvičení 30.11.2006
Cvičení 7.12.2006
Cvičil se Haskell. Jednoduché příklady na procvičení syntaxe a vestavěných typů - n-tý prvek seznamu, délka seznamu, faktoriál atd. Dále jsme procvičovali konstrukci zip (dvě struktury, prvky na stejných místech ve strukturách jsou zpracovány pomocí binární operace a výsledek je uložen do výsledné struktury na odpovídající místo) na seznamech a na stromech. Zkoušeli jsme různé varianty funkcionálních paramtrů konstrukce zip. Na rozmyšlenou zůstaly konstrukce map a fold pro strom (aplikace na výpočet výsky stromu).
Cvičení 21.12.2006
Příští cvičení (tj. 4.1.2007) se bude psát druhá zápočtová písemka.
Cvičení 4.1.2007
Cvičení 11.1.2007
|