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).
Při řešení příkladů by se mělo postupovat:
- přečíst zadání
(pokud je to nutné potom přečíst i nápovědu)
- promyslet si řešení
a stručně si ho načrtnout na papír
- naprogramovat volání funkcí
a jejich těl
- vytvořit vzorová volání funkcí na prozkoušení
správnosti řešení (v případě, že to nefunguje, použít debuger
(trasování programu a zobrazování hodnot), vytvořit testovací vstupní
a výstupní (srovnávací) soubory pro automatickou kontrolu algoritmů
po úpravách
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 |
Byl vypsán termín půlsemestrálního testu. Nutno se registrovat v IS. Pro třídu (Komplex, String, váš projekt) implementujte základní část třídy = založte tři soubory, ošetřete hlavičku, navrhněte data, zvolte přístupová práva, napište konstruktory (určitě char *), destruktor, počítejte vzniklé a aktuální prvky pomocí statických proměnných, vytiskněte je pomocí statické funkce |
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 |
Prostudujte a doplňte funkci pro morseovku tak aby byla funkční (převodní tabulka je na konci souboru, nutno rozdělit cpp a h soubory) |
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 ( prostudujte program na výpočet matic realizovaný pomocí šablon, vyzkoušejte si napsat šablony pro 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í |
Poslední úpravy 2008-10-08