BPPC – praktické programování v C++
Náplň cvičení
Příklad 1 – příklad na procvičení C,
C++ (základní pro práci na cvičeních)
Příklad
2 – příklad na procvičení C, C++ (doplňkový
pro práci na cvičeních)
Příklad 3 –
příklad pro zdatnější programátory
(složitější příklad vyžadující
větší znalosti, větší iniciativu a větší
samostatnost)
DU – příklady vhodné na
procvičení látky v klidu domova (nebo ve zbývajícím
čase na cvičeních).
Projekt – práce na
projektu, vlastní práce doma, konzultace a odevzdání
v příslušných hodinách.
Na projektu by se nemělo během cvičení pracovat – to je domácí část práce. Projekt a problémy s ním však můžete na cvičeních konzultovat (příklady ze cvičení budou mít přednost).
Týden |
Typ příkladu |
náplň |
1 |
úvod |
Organizace cvičení - cvičící, laboratoř, bezpečnost, plán, body |
Příklad 1 |
Postup sestavení programu v prostředí MS Visual C (preprocesor, kompilátor, linker, zdrojové a hlavičkové soubory, spustitelné a knihovní soubory (statické a dynamické)). Základní orientace v prostředí - MS Visual C++ |
|
Příklad 2 |
Přesměrování výstupu (v programu, na konzole) Formátovaný tisk – tabulka násobilky (cykly, tisk na konzolu) |
|
DU |
Formátovaný tisk - cosinus |
|
Příklad 3 |
Jednoduchá grafika – (načtení dat, grafický výstup, cykly) |
|
2 |
Příklad 1 |
Makra – použití #define bez a s parametry |
Příklad 2 |
Formátovaný vstup – načítání dat z disku a jejich zpracování |
|
DU |
bitové operace – práce s bity |
|
Příklad 3 |
Vytvořte interpret jazyka Brainfuck |
|
3 |
Příklad 1 |
Komentáře – stavový automat |
Příklad 2 |
Bitové operace – zjištění velikosti typů, rotace, maskování |
|
DU/Projekt DU |
zadání témat projektu – výběr do příště Práce s řetězci (dynamické 1D pole) – vytvoření, rušení, délka, spojení, vložení na danou pozici do jiného, srovnání, vyhledávání podstringu ... |
|
Příklad 3 |
Komentáře – stavový automat včetně části „pro pokročilé“ |
|
4 |
Příklad 1 |
Práce s ukazateli - ukazatel jako parametr funkce |
Příklad 2 |
2D pole (ukazatele, práce s dynamickou pamětí, alokace, odalokace) |
|
Projekt DU |
Nahlášení
zvoleného tématu projektů a spolupracovníků.
1D pole – třídění, třídění pomocí indexace – četnost znaků |
|
Příklad 3 |
Binární strom - morseovka |
|
5 |
Příklad 1 |
|
Příklad 2 |
Předělat 2D pole z minulého týdne do
struktur (rozměr_x, rozměr_y, data) |
|
Projekt DU |
konzultace zadání, dokončení formulace zadání Projít si třídy komplex a string ze skript (viz příklad 2) |
|
Příklad 3 |
Proveďte návrh
třídy kterou budete vypracovávat. |
|
6 |
Příklad 1 |
Jednosměrně vázaný seznam – procvičení struktur a ukazatelů |
Příklad 2 |
Přetěžování funkcí – více stejně pojmenovaných funkcí |
|
DU prj |
Dodělejte funkce vázaného seznamu (příklad 3), dvousměrný seznam, cyklický seznam … využijte pro množinu Odevzdání zadáni |
|
Příklad 3 |
Rozdělte vytvářený projekt do hlavičky
a zdrojů |
|
7 |
Příklad 1 |
Implicitní parametry – automaticky doplňované při volání funkcí bez parametrů |
Příklad 2 |
Reference – práce s prvky v paměti, předávání proměnných do funkcí Přemýšlejte o implementaci tříd (Komplex, String, váš projekt), zvolte datovou reprezentaci, promyslete vznik a zánik |
|
Projekt |
Hodnocení zadání |
|
Příklad 3 |
Napište pro svou třídu základní operátory |
|
8 |
Příklad 1 |
Pro třídu (Komplex, String, váš projekt) implementujte: data, konstruktory, destruktory, přístupová práva |
Příklad 2 |
Implementujte nastavení pro nastavení a čtení, proveďte rozdělení do hlavičky a zdrojů |
|
DU/prj |
Konzultace hlavičky, vlastní tvorba, srovnání se zadáním |
|
Příklad 3 |
„zabalený“ ukazatel – vytvořte třídu (šablony) vhodnou pro práci s dynamickými proměnnými (ukazateli, inicializace, použití ...) tak aby se zlepšila práce s ukazateli při vyvolání výjimek |
|
9 |
Příklad 1 |
Statická data pro počítání objektů |
Příklad 2 |
Členské a nečlenské „funkce“, alokace paměti |
|
DU / prj |
||
Příklad 3 |
Připravte rozšíření tříd na dědění a využití virutálních betod (vlastnosti bázové třídy), přepište |
|
10 |
Příklad 1 |
Doplňte funkci pro morseovku |
Příklad 2 |
Operátory, friend, přetypování |
|
DU / prj |
Práce na zdrojích,
konzultace |
|
Příklad 3 |
Rozšiřte programy o vlastnosti tříd
získaných díky dědění
(v grafice – další typy objektů, v seznamu
– různé typy pro uložení hodnot …) |
|
11 |
Příklad 1 |
|
Příklad 2 |
Šablony (matice, jednoduché funkce) |
|
DU / prj |
Práce na zdrojích – ukázkový program, konzultace |
|
Příklad 3 |
Zjistěte, zda by při tvorbě projektu nepomohla STL, přepracujte |
|
12 |
Příklad 1 |
|
Příklad 2 |
||
DU / prj |
Tvorba dokumentace |
|
Příklad 3 |
Dodělání |
|
13 |
Příklad 1 |
Obhajoba projektů |
DU / prj |
Odevzdání dokumentace |
|
Ukončení |
Body ze cvičení |
|
|
---|---|
|
|
11
|
Prostory jmen (napište streamy s stream.h, a potom změňte na stream, a také stdio.h na cstdio) Vstup a výstup – streamy – přepište programy na tisk tabulek (cvičení č.2) za pomoci možností jazyka C++ (streamy). Zkuste provést výstup na standardní výstup (cout) a do souboru. |
12
|
Dědění, virtuální metody – jednoduchý příklad dědění, virtuální metody a abstraktní datový typ – grafické objekty
(Výjimky, šablony (matice), Runtime identifikace – komentář)
|
Poslední úpravy 2007-12-02