Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Závěrečný test

Závěrečný test bude online na platformě BRUTE. Přihlašujte se v KOSu na vypsané termíny.

Struktura testu:

  • 2x příklad / 5b
  • 8x lehčí otázka / 2b
  • 3x těžší otázka / 3b
  • čas na vypracování: 60/90 minut

Otázky

Procesy a vlákna

  • Jaký je rozdíl mezi procesem a vlákem?
  • Jak je možné vytvořit v C nový proces?
  • Jak je možné vytvořit nové vlákno?
  • Co je to mutex?
  • Jak mohou procesy komunikovat mezi sebou?

Principy objektového programování

  • Jaký je rozdíl mezi třídou a objektem?
  • Jak je určena viditelnost členských proměnných a metod?
  • Jaký je rozdíl mezi členskými metodami (a proměnnými) třídy a objektu?
  • Jaký je rozdíl mezi klíčovými slovy protected a private?
  • Co je polymorfismus a jak je ho dosaženo?
  • Co je to bázová třída a čím se vyznačuje?
  • Uveďte příklad deklarace plně virtuální metody?
  • Co je to implicitní konstuktor?
  • Co je to kopírovací konstruktor?
  • Jaké jsou možnosti dědění? Uveďte příklady.
  • Co je to virtuální dědění a k čemu je dobré?
  • Které vlastnosti rodiče potomek nedědí?
  • Co je to přetížení? Uveďte příklad (několik řádek kódu, ze kterých bude zřejmé, o co jde).
  • Jaký je rozdíl mezi přepsáním (override) a přetížením (overload)?
  • Co je vazba typu kompozice? Uveďte příklad (několik řádek kódu, ze kterých bude zřejmé, o co jde).
  • Co je vazba typu asociace? Uveďte přiklad (několik řádek kódu, ze kterých bude zřejmé, o co jde).
  • Co reprezentuje klíčové slovo this?
  • Jaký je rozdíl mezi referencí a ukazatelem?
  • Jaký je rozdíl mezi mělkou a hlubokou kopií?

Programování v C++

  • Napište příklad načteni hodnoty typu int ze standarního vstupu pomocí proudového operátoru. Jak lze ošetřit správnost vstupu?
  • Jak se v C++ provádí přetížení operátoru? Uveďte příklad.
  • Jaké operátory nelze v C++ přetížit?
  • Jak a kdy se volá konstruktor a destruktor?
  • Jaký je rozdíl mezi objektem alokovaným v zásobníku a objektem dynamicky alokovaným na haldě?
  • Jaký je rozdíl mezi operátory delete a delete[]?
  • Jaká je návratová hodnota destruktoru?
  • Co je třeba zajistit při dynamické alokaci? Uveďte příklad.
  • Co je to výjimka a k čemu je dobrá? Uveďte příklad.
  • Kolik výjimek je možné v programu ošetřit?
  • Co je to generická funkce?
  • Jak lze vytvořit explicitní instanci generické funkce? K čemu je to dobré?
  • Jak jsou obvykle parametrizovány šablony tříd?
  • V čem spočívá problém vícenásobného dědění? Jak je možné tomuto problému zabránit?
  • Co je to zapouzdření a čemu je dobré?
  • Jak lze využít implicitní hodnoty argumentu funkce? Uveďte příklad.
  • Jaký je rozdíl mezi deklarací třídy pomocí class a struct.
  • Co je to konverzní konstruktor?
  • Jaký je rozdíl mezi statickou a dynamickou vazbou?
  • Jaký je význam klíčového slova auto? Lze ho použít vždy?
  • Co přesouvací (move) kontruktor?
  • Co je pravidlo tří (rule of three)?
  • Jaký je tvar definice lambda funkce v C++? Uveďte příklad a popište, co funkce dělá.

STL kontejnery

  • Co je to kontejner?
  • Jaký je rozdíl mezi sekvenčními a asociativními kontejnery? Uveďte příklad.
  • Jaké jsou klíčové vlastnosti kontejneru std::vector?
  • Jaké jsou klíčové vlastnosti kontejneru std::map?
  • Jakého datového typu může být klíč kontejneru std::map?
  • Co je třeba zajistit v případě, že klíčem v kontejneru std::map je strukturovaný datový typ (např. naše vlastní třída)?
  • Jaký je význam datového typu std::pair?
  • Co je to iterátor? Uveďte příklad.
  • Jaký je rozdíl mezi konstatním a nekonstantním iterátorem?
  • Co všechno je třeba zajistit pro vytvoření vlastního iterátoru?
  • Co je range-for cyklus? Uveďte příklad.
  • Uveďte příklad použití algoritmu sort (deklarujte vektor libovolného datového typu, vložte do něj data a vektor seřaďte).

Praktické programování (Qt a související)

  • Co je to event-driven programování?
  • Jaký je rozdíl mezi událostí a signálem?
  • Popište systém signálů a slotů, uveďte příklad propojení.
  • Jakým způsobem lze vytvořit v Qt okno a v něm vykreslit grafickou komponentu?
  • Co se časovač (QTimer), k čemu je dobrý a jak se používá?
  • Co si představujete pod pojmem MVC?
  • Jaký je rozdíl mezi UDP a TCP transportní vrstvou?
courses/b2b99ppc/test.txt · Last modified: 2021/05/21 09:31 by viteks