BPPC – praktické programování v C++

Náplň cvičení

náplň přednášek najdete zde

 

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ý vstupnačí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ářestavový 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/projekt

DU

Nahlášení zvoleného tématu projektů a spolupracovníků.
formulace_zadání projektu (odevzdání příště)

1D pole – třídění, třídění pomocí indexace – četnost znaků

Příklad 3

Binární strom - morseovka

5

Příklad 1

Ukázky tříd

Příklad 2

Předělat 2D pole z minulého týdne do struktur (rozměr_x, rozměr_y, data)
Dokončení příkladů z minula,
Konzultace C

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.
Pro svou třídu napište konstruktory a destruktory, metody pro čtení a zápis

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ů
Dále pro svou třídu napište základní funkčnost

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
DU/prj

Hodnocení zadání
Tvorba hlavičkového souboru projektu

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

Odevzdání hlavičky
tvorba zdrojové části

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
hodnocení hlavičky

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 …)
realizujte vstupy a výstupy (konzola, disk ...)

11

Příklad 1

Vstupy a výstupy, prostory jmen

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

dědění

Příklad 2

Virtuální metody

DU / prj

Tvorba dokumentace
Odevzdání prj – zdroje

Příklad 3

Dodělání
RTI

13

Příklad 1

Obhajoba projektů

DU / prj

Odevzdání dokumentace

Ukončení

Body ze cvičení

 

 

 

 

 

Poslední úpravy 2008-10-08