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

Předmět je uzavřen klasifikovaným zápočtem. Pro získání zápočtu je potřeba vypracovat, obhájit zápočtový program a projevit znalost probrané látky při přezkoušení:

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
  5. standardní šablonová knihovna
    • kontejnery (list, vector, map, iterator)
    • vstupy a výstupy (iostream, fstream)
  6. základy práce s knihovnou Qt
    • základní widgety (tlačítka, popisky, vstupní pole)
    • tvorba rozložení formuláře
    • akce a nabídky
    • objektový model v Qt
    • události

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)

Následující zadání berte jako inspiraci, můžete zkusit vymyslet vlastní zadání obdobné složitosti. Uživatelské rozhraní úloh implementujte v knihovně Qt.

  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. Ř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)
  3. Hledání nejkratší cesty v ohodnoceném grafu. Předpokládejte, že graf je zadán pomocí matice vzdáleností A (Aij = cena hrany mezi uzly i, j, 0 pokud mezi uzly i a j nevede hrana) uložené v textovém souboru.
  4. 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ů). Knihovnu použijte v jednoduché Qt kalkulačce.
  5. Pexeso
Poslední úprava stránky: 25.05.2020, 18:19
Powered by PmWiki