Detail předmětu
Praktické programování v C++
FEKT-BPC-PPCAk. rok: 2021/2022
Předmět se věnuje praktickému zvládnutí základů jazyka C++, jako rozšíření jazyka C (v návaznosti na látku probranou v předchozích předmětech).
Studenti se seznámí se základními neobjektovými rozšířeními jazyka C, se základy objektového programování. Dále se seznámí s nástroji pro tvorbu programu v C++ a standardními knihovnami.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- používat neobjektové rozšíření jazyka
- provést návrh programu využívajícího objektové programování
- naprogramovat a použít navržené objekty (přístupová práva, členská data, metody, operátory)
- orientace v objektově napsaných programech,
- napsat objektově orientovaný program se základním použitím dědění včetně virtuálních metod,
- použít streamů pro vstupně výstupní operace,
- vytvářet šablony,
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Zápočet je udělen za dosažení 13 a více bodů z projektu.
40b - projekt - průběžná tvorba třídy v návaznosti na přednášky a cvičení. Společná práce ve skupinách (3,4 členné, podle počtu studentů ve cvičení, které student navštěvuje).
Konkrétní zadání a termíny plnění budou stanoveny v průběhu semestru.
Osnovy výuky
2. Srovnání C a C++. Objektové možnosti C++. Pojem objektu a jeho návrh.
3. Práce s proměnnými pomocí reference. Definice objektu. Přístup k proměnným pomocí this.
4. Přetěžování funkcí a metod. Implicitní parametry funkcí.
5. Konstruktory a destruktory. Životní cyklus proměnných. Pojem viditelnosti a dosažitelnosti obsahu proměnné.
6. Operátory. Friend funkce.
7. Inline funkce a metody. Rozdělení třídy mezi hlavičkový a zdrojový soubor.
8. C++ knihovna pro standardní vstupy a výstupy, pojem stream.
9. Pojem dědění v kontextu objektového programování.
10. Vícenásobné dědění.
11. Virtuální metody.
12. Abstraktní třída a její využití při objektovém návrhu.
13. Pojem výjimka v C++, princip šíření výjimek v programu. Generické programování, pojem šablona.
Učební cíle
Získat základní programatorské dovednosti v oblasti objektového programování.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Prerekvizity a korekvizity
- povinná prerekvizita
Algoritmy a datové struktury
Základní literatura
STROUSTRUP, B.: The C++ Programming Language. Addison-Wesley,2013. 1368 s. ISBN-13: 978-0321563842. (EN)
VIRIUS, M.: Jazyky C a C++. 2. , aktualizované vydání. Praha: Grada Publishing, 2011. 368 s. ISBN 9788024739175. (CS)
VIRIUS, M.: Programování v C++ od základů k profesionálnímu použití, Grada publishing, 2018, ISBN: 978-80-271-0502-1 (CS)
Elearning
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2 Srovnání C a C++. Objektové možnosti C++. Pojem objektu a jeho návrh.
3 Práce s proměnnými pomocí reference. Definice objektu. Přístup k proměnným pomocí this.
4 Přetěžování funkcí a metod. Implicitní parametry funkcí.
5 Konstruktory a destruktory. Životní cyklus proměnných. Pojem viditelnosti a dosažitelnosti obsahu proměnné.
6 Operátory. Friend funkce.
7 Inline funkce a metody. Rozdělení třídy mezi hlavičkový a zdrojový soubor.
8 C++ knihovna pro standardní vstupy a výstupy, pojem stream.
9 Pojem dědění v kontextu objektového programování.
10 Vícenásobné dědění.
11 Virtuální metody.
12 Abstraktní třída a její využití při objektovém návrhu.
13 Pojem výjimka v C++, princip šíření výjimek v programu. Generické programování, pojem šablona.
Cvičení na počítači
Vyučující / Lektor
Osnova
2 Opakování práce se strukturami jako základ pro práci se třídou (složeným datovým typem)
3 Tvorba složitějších struktur a práce s nimi.
4 Rozšíření tvorby struktur o vlastnosti jazyka C ++: new, delete, výjimky
5 Využití referencí pro práci s proměnnými a s parametry funkcí a metod
6 Popis nástroje pro automatizované dokumentování SW projektů. Nástroje pro správu zdrojových textů.
7 Ukázky a rozbor zdrojových textů vzorových tříd. Základní definice třídy a tvorba jejích proměnných.
8 Definice datových členů třídy a metod pro práci s nimi. Konstruktory a destruktory.
9 Operátory.
10 Vstupy a výstupy pomocí streamů. Prostory jmen.
11 Dědění.
12 Využití virtuálních metod.
13 Opakování. Konzultace projekt.
Projekt
Vyučující / Lektor
Osnova
2 Rozbor projektu a tvorba zadání
3 Tvorba a rozbor základu projektu (třídy a jejich vazby, vhodnost datových typů a rozhraní tříd).
4 Tvorba zdrojových kódů projektu.
5 Tvorba dokumentace.
6 Obhajoba projektu.
Elearning