Podmínky pro udělení zápočtu

Předmět je uzavřen zápočtem. Pro získání zápočtu je potřeba vypracovat, obhájit zápočtový program a případně i projevit znalost probrané látky při přezkoušení: Během semestru jste dostávali body za docházku a za vypracování domácích úkolu.

Studenti, kteří během semestru ztratili žádný nebo jeden bod pro získání zápočtu vypracují zápočtovou úlohu ze skupiny A.

Studenti, kteří ztratili 2-5 body pro získání zápočtu vypracují zápočtovou úlohu ze skupiny B.

Studenti, kteří ztratili více než 5 bodů pro získání zápočtu vypracují zápočtovou úlohy ze skupiny B a navíc budou přezkoušeni, aby dokázali, že ovládají zameškanou látku.

Témata doplňujících otázek

  1. objektové typy v C++
    • zapouzdření (přístupová práva, deklarace friend, ...)
    • dědičnost (předek a potomek, dědictví a přístupová práva, ...)
    • polymorfismus (abstraktní třídy, virtuální metody, časná a pozdní vazba, ...)
  2. šablony
    • šablony funkcí
    • šablony objektových typů
  3. přetěžování operátorů
    • operátory, které lze přetěžovat jako nestatické metody nebo jako volné funkce
    • operátory, které lze přetížit pouze jako nestatické metody
  4. výjimky
    • vyvolání a obsluha výjimek

Obecné požadavky

Při psaní zápočtové úlohy dbejte na čistotu kódu (vhodný rozklad do podprogramů a samostatně překládaných zdrojových souborů, odsazování, komentáře). Program by měl jít přeložit bez varování překladače a měl by uvolnit veškerou alokovanou paměť. Dbejte také na komunikaci s uživatelem programu.

Při řešení používejte objektové typy (případně šablony objektových typů), v případě potřeby vhodným způsobem přetěžte operátory a využijte výjimky.

Náměty na zápočtové úlohy (bude průběžně aktualizováno)

Úlohy skupiny A

Následující zadání berte jako inspiraci, můžete zkusit vymyslet vlastní zadání obdobné složitosti.

  1. Hledání cesty z bludiště. Předpokládejte, že bludiště je uloženo v PGM souboru, kde 0 znamená zeď a 1 chodbu. Cestu k souboru s bludištěm a počáteční pozici a souřadnici východu zadá uživatel.
  2. Skákání koněm po šachovnici: napište program, ve kterém proskákáte šachovnici koněm tak, že každé políčko bude navštíveno právě jednou. Výchozí pozici zadá uživatel.
  3. Úloha N dam

Úlohy ze skupiny B

  1. Řešení hanojských věží. Předpokládejte, že počet disků zadá uživatel, při řešení nepoužívejte rekurzi. Pro vizualizaci použijte nějakou grafickou knihovnu (např. Qt nebo SDL)
  2. Knihovna pro práci s velkými celými čísly. Rozsahy datových typů jsou omezené. Navrhněte vlastní datový typ, který bude schopen reprezentovat celá čísla až o 200 číslicích. Napište funkce, které budou umět proměnné tehoto datového typu sčítat, odčítat, násobit a celočíselně dělit. (Nápověda: použijte pole znaků).
  3. Pexeso - pro dva lidské hráče, grafický výstup pomocí knihovny QT nebo SDL
  4. Jednoduchý řádkový kalkulátor. Na vstupu uživatel zadá aritmetický výraz v infixové notaci. Předpokládejte, že ve výrazu mohou být použity operátory +,- (unární i binární), *, /, ^ (mocnění) a závorky. Výraz převeďte do obráceného polského zápisu a ten pak vyhodnoťte.
Poslední úprava stránky: 16.12.2019, 07:31
Powered by PmWiki