Detail předmětu
Základy programování v C++
FEKT-BPC-PPCAk. rok: 2025/2026
Základní pojmy z programování v C++ a jejich procvičení. Budou uvedeny a vysvětleny pojmy pro konstrukce programů v C++: neobjektové vlastnosti, tvorba objektů (přístupová práva, členská data a funkce, this, konstruktory, destruktory, operátory), dědění, šablony, streamy. Základy práce se standardními knihovnami.
Jazyk výuky
čeština
Počet kreditů
6
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Absolvování kurzu BPC-UDP a úspěšné absolvování BPC-ALD nebo kurzů s podobnou náplní.
Pravidla hodnocení a ukončení předmětu
Na základě aktivit ve cvičeních – testy - až 40b.
Zápočet je udělen za dosažení 14 a více bodů ze cvičení.
Závěrečná zkouška – písemná až 60b.
Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.
Zápočet je udělen za dosažení 14 a více bodů ze cvičení.
Závěrečná zkouška – písemná až 60b.
Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.
Učební cíle
Cílem je naučit studenty základní programátorské dovednosti v oblasti objektového programování a programovacích praktik v jazyce C++.
Absolvent zná:
- používat neobjektové rozšíření jazyka
- provést návrh programu využívajícího základů objektové programování
- naprogramovat a použít navržené objekty (přístupová práva, členská data, metody, operátory)
- základní 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 jednoduché šablony, využívat výjimky.
Absolvent zná:
- používat neobjektové rozšíření jazyka
- provést návrh programu využívajícího základů objektové programování
- naprogramovat a použít navržené objekty (přístupová práva, členská data, metody, operátory)
- základní 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 jednoduché šablony, využívat výjimky.
Prerekvizity a korekvizity
- povinná prerekvizita
Algoritmy a datové struktury
Základní literatura
RICHTER, Miloslav, PETYOVSKÝ, Petr, HORÁK Karel a KALOVÁ Ilona. Praktické programování v CPP SL. Elektronické texty. Brno: 2004. (CS)
STROUSTRUP, B.: A Tour of C++, Addison Wesley, 2018, ISBN 9780134997834 (EN)
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)
STROUSTRUP, B.: A Tour of C++, Addison Wesley, 2018, ISBN 9780134997834 (EN)
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)
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
26 hod., nepovinná
Vyučující / Lektor
Osnova
1. Úvod C++, základní charakteristiky, srovnání s C, přehled vlastností objektového programování.
2. Pojem objekt, třída a její návrh. Prostory jmen. Práce s pamětí.
3. Datový typ reference, const, constexpr, volání funkcí. Přetěžování funkcí, implicitní parametry.
4. this, metody, přístupová práva.
5. Inline funkce a metody. Konstruktory a destruktory. Životní cyklus objektů. Pojem viditelnosti a dosažitelnosti obsahu objektů.
6. Operátory.
7. Move semantika. Statické členy. Friend funkce.
8. Výjimky. Šablony. Auto jako datový typ. Decltype.
9. C++ knihovny pro standardní vstupy a výstupy. Pojem stream.
10. Dědění a jeho vlastnosti.
11. Polymorfizmus. Abstraktní třída a její využití při objektovém návrhu.
12. RTTI. Chytré ukazatele. Vícenásobné dědění. Moduly.
13. Lambda funkce. Koncepty. Thready. Korutiny. STL library.
2. Pojem objekt, třída a její návrh. Prostory jmen. Práce s pamětí.
3. Datový typ reference, const, constexpr, volání funkcí. Přetěžování funkcí, implicitní parametry.
4. this, metody, přístupová práva.
5. Inline funkce a metody. Konstruktory a destruktory. Životní cyklus objektů. Pojem viditelnosti a dosažitelnosti obsahu objektů.
6. Operátory.
7. Move semantika. Statické členy. Friend funkce.
8. Výjimky. Šablony. Auto jako datový typ. Decltype.
9. C++ knihovny pro standardní vstupy a výstupy. Pojem stream.
10. Dědění a jeho vlastnosti.
11. Polymorfizmus. Abstraktní třída a její využití při objektovém návrhu.
12. RTTI. Chytré ukazatele. Vícenásobné dědění. Moduly.
13. Lambda funkce. Koncepty. Thready. Korutiny. STL library.
Cvičení na počítači
39 hod., povinná
Vyučující / Lektor
Osnova
Procvičování látky probrané na přednáškách formou příkladů.
1. Základy použití objektů, STL
2. Základy použití objektů, STL
3. Tvorba třídy a metod. Přetěžování funkcí, práce s referencí. Základy práce se standardním vstupem a výstupem.
4. Konstruktory a destruktory.
5. Operátory.
6. Práce s pamětí, využití prostorů jmen při tvorbě programů. Výjimky.
7. Test 1.
8. Šablony.
9. Standardní vstupy a výstupy.
10. Dědění.
11. Polymorfizmus.
12. Lambda funkce. Dokončení příkladů. Opakování.
13. Test 2.
1. Základy použití objektů, STL
2. Základy použití objektů, STL
3. Tvorba třídy a metod. Přetěžování funkcí, práce s referencí. Základy práce se standardním vstupem a výstupem.
4. Konstruktory a destruktory.
5. Operátory.
6. Práce s pamětí, využití prostorů jmen při tvorbě programů. Výjimky.
7. Test 1.
8. Šablony.
9. Standardní vstupy a výstupy.
10. Dědění.
11. Polymorfizmus.
12. Lambda funkce. Dokončení příkladů. Opakování.
13. Test 2.