Home page

BPPC home page

výuka home page


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

Náplň cvičení

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

Během existence kurzu vzniklo několik sad příkladů podle rozsahu výuky a znalostí studentů. Příklady byly vytvořeny většinou tak, aby se každým z nich procvičila určitá vlastnost jazyka. Jelikož si studenti ztěžovali, že jsou málo praktické, došlo k jejich spojení do projektu, který se bude postupně tvořit v celém semestru. Původní příklady zůstávají součástí cvičení jako příprava. Jsou vhodné pro ty, kterým vyhovují příklady jednodušší, týkající se jediného tématu. Příklady v tabulce označené jako Př. X jsou tedy tyto samostatné příklady, které se vztahují k danému cvičení patřícího do většího celku. Je možné je použít jako příklady na domácí cvičení k procvičení jednotlivých vlastností.

Hlavní částí cvičení je projekt vypracovávaný v rámci cvičení – Projekt/ cvičení. Jedná se o koncept jediného rozsáhlého projektu, který se řeší v jednotlivých krocích (rozložených do cvičení). To samozřejmě vyžaduje neustálou práci a dokončování práce ze cvičení. Proto je na cvičení nutná příprava – připomenout si minulou práci (dokončit nedodělky a odladit chyby), přečíst si aktuální zadání a snažit se ho pochopit. Cvičení bude začínat krátkým rozborem úlohy a odpovědí na dotazy (ohledně minulé práce a aktuálního zadání).

Poslední částí je projekt, který bude vypracováván doma – Projekt DU. Tento projekt bude možné konzultovat v rámci cvičení. Bude odevzdáván po částech, které se budou hodnotit samostatně. Výsledný součet bodů bude hodnocením cvičení (bude oznámeno společně po odevzdání poslední části projektu). Na tomto projektu by se nemělo pracovat během cvičení. Příklady ze cvičení budou mít přednost i vůči konzultacím projektu.



Z časových a prostorových důvodů není možné sledovat práci jednotlivých studentů. Proto nemůžeme splnit přání studentů, abychom je do práce více nutili. Je potřebná samostatná práce studenta. V případě, že nedokážete najít správné řešení (do cca 5-10 minut), kontaktujte cvičícího. Snažte se pokládat co nejkonkrétnější dotazy (a ne „mě to nefunguje“).


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





!!! Stránky jsou ve vývoji !!!





 

Týden

Typ příkladu

náplň

1

úvod

Organizace cvičení - cvičící, laboratoř, bezpečnost, plán cvičení, bodování

Cvičení

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++

Cvičení

Cykly, funkce, předávání proměnných – násobilka (kroky zadání 0 - 4)

Příklad 1

Přesměrování výstupu (v programu, na konzole)

Formátovaný tisk – tabulka násobilky (cykly, tisk na konzolu)

Příklad 2

Formátovaný tisk - cosinus

Příklad 3

Jednoduchá grafika (načtení dat, grafický výstup, cykly)

Poznámka

Na přednášce (patrně ve druhém týdnu) bude probrána tvorba projektu a návaznosti jednotlivých součástí.

2

Cvičení

Kontrola minulého cvičení. Pokračování: parametry programu (main), ukládání dat – násobilka (kroky zadání 5 - 7)

Cvičení

Formátovaný vstupnačítání dat z disku a jejich zpracování

Příklad 1

Makra – použití #define bez a s parametry

DU

bitové operace – práce s bity

Příklad 3

Vytvořte interpret jazyka Brainfuck

3

Cvičení

Práce s ukazateli - ukazatel jako parametr funkce

Cvičení

2D pole (ukazatele, práce s dynamickou pamětí, alokace, odalokace)

Příklad 1

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

Cvičení

2D pole – struktury, rozšíření

Cvičení

návod k instalaci svn pro odevzdávání projektů

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

Cvičení

Jednosměrně vázaný seznam – procvičení struktur a ukazatelů

Příklad 1

Přetěžování funkcí – více stejně pojmenovaných funkcí

Projekt

DU

konzultace zadání, dokončení formulace zadání

Projít si třídy komplex a string ze skript (viz příklad 1)

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

Cvicení

Ukázky tříd

Cvičení

Komentáře – stavový automat

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ání

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



Cvičení

Zde by se měl stanovit termín půlsemestrálního testu - předpokládané datum 18.11. Nutno se registrovat v IS.

Přemýšlejte o implementaci (způsobu realizace) třídy CPole2D (promyslete také například třídy CKomplex, CString, váš projekt...), zvolte datovou reprezentaci, promyslete vznik a zánik, manipulaci s instancemi třídy z hlediska vnějšího i vnitřního uspořádání

Cvičení

Přepracování 2D pole na třídu (konstruktor, destruktor, statická data a metody, čtení, zápis, změna rozměrů),

Příklad 1

Implicitní parametry – automaticky doplňované při volání funkcí bez parametrů

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

V tomto týdnu 18.11. by se měl psát půlsemestrální test. Nutno se registrovat v IS.

Pro třídu String 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ů

Cvičení

Implementujte funkční operátor jako operátor pro přístup k prvkům pole (využijte návrat hodnoty pomocí reference)

Reference – práce s prvky v paměti, předávání proměnných do funkcí

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

Konzultace hlavička

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

Odevzdání hlavičky

tvorba zdrojové části, konzultace, checker

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 – program demonstrující činnost třídy, konzultace,

hodnocení hlavičky

Příklad 3

Zjistěte, zda by při tvorbě projektu tvořeného v rámci „příklad 3“ nepomohla STL, přepracujte (neplatí pro kategorii PRJ!!!)

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 2010-11-08