OPF:INFNPOOP Objektové programování - Informace o předmětu
INFNPOOP Objektové programování
Obchodně podnikatelská fakulta v Karvinézima 2013
- Rozsah
- 2/1/0. 4 kr. Ukončení: zk.
- Vyučující
- doc. Mgr. Petr Suchánek, Ph.D. (přednášející)
Ing. Marek Spišák (cvičící) - Garance
- doc. Ing. Petr Čermák, Ph.D.
Katedra informatiky a matematiky – Obchodně podnikatelská fakulta v Karviné - Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- Manažerská informatika (program OPF, N_SYSINF)
- Cíle předmětu
- Cílem předmětu je navázat na znalosti ze strukturovaného programování a seznámit studenty s postupy objektově orientovaného programování, naučit je vytvářet a používat příslušné datové typy, pracovat s třídami a dynamickými typy, využívat nových prostředků OP, jimiž jsou dědičnost a polymorfismus. Dále se studenti seznámí s pokročilejšími vlastnostmi jazyka C++, mnohem detailněji bude v předmětu rozebrána otázka rozdílností jazyků C++ a JAVA. Cílem předmětu je rovněž objasnit práci se šablonami a objektovými datovými proudy (soubory).
- Osnova
- 1. Základní prvky jazyků C++, C# a JAVA.
2. Zapouzdření. Objekty - objektové typy, třídy. Vztahy mezi třídami.
3. Konstruktor, destruktor.
4. Operátory, indexování, volání funkce, přetypování.
5. Dynamické datové typy. Iterátory, kontejnery. Operátory pro správu paměti. Operátory pro alokaci polí.
6. Ukazatele a reference.
7. Vazby (časná a pozdní). Volání metod. Virtuální metody a polymorfismus. Abstraktní třídy. Metody ošetření zpráv od Windows.
8. Vícenásobná dědičnost. Instance, konstruktory a destruktory vícenásobné dědičnosti. Přetypování ukazatelů.
9. Problémy s vícenásobnou dědičností.
10. Šablony v C++.
11. Prostory jmen. Soubory a proudy v C++. Vstup a výstup v C++.
12. Dynamická identifikace typů v C++. Operátory pro bezpečnější přetypování.
13. Implementace konkrétní aplikace v C++.
1. Základní prvky jazyků C++, C# a JAVA. Kompilátory. Metody návrhu programů v C++. Standardní knihovna C++ a standardní knihovna šablon. Rozdíl mezi procedurálním a objektovým programováním.
2. Zapouzdření. Objekty - objektové typy, deklarace třídy, instance třídy, komponenty tříd. Metody - deklarace metod, definování metod. Uživatelské datové typy. Vztahy mezi třídami (asociace, kompozice, dědičnost) a návrh programu z hlediska OOP.
3. Konstruktor, destruktor. Statické atributy a metody. Přetížení konstruktorů a metod. Dědičnost.
4. Operátory - přiřazovací, základní binární, unární, inkrementace a dekrementace, indexování, volání funkce, přetypování. Přetížení operátorů, friend funkce.
5. Dynamické datové typy - seznam, zásobník, fronta, strom, množina, kupa, slovník. Iterátory, kontejnery. Přístup ke vnořeným typům (public, protected, private). Dynamická alokace paměti. Operátory pro správu paměti (new, delete), operátory pro alokaci polí.
6. Automatické a třídní ukazatele. Objekty a klíčové slovo this. Ukazatele na třídu, ukazatele na data, ukazatele na metody či prosté funkce.
7. Abstraktní třídy. Virtuální metody. Nevirtuální metody. Časná a pozdní vazba. Polymorfismus. Metody pro ošetření zpráv od Windows.
8. Vícenásobná dědičnost. Instance, konstruktory a destruktory vícenásobné dědičnosti. Přetypování ukazatelů.
9. Problémy spojené s vícenásobnou dědičností a jejich řešení (konflikt jmen, opakovaná dědičnost, virtuální dědičnost).
10. Šablony v C++. Deklarace šablony, šablony řadových funkcí, šablony objektových typů a jejich metod, šablony v rozsáhlých programech, šablony v knihovnách.
11. Prostory jmen a jejich použití. Soubory a proudy v C++, vstup a výstup aplikace.
12. Dynamická identifikace typů v C++. Operátory pro bezpečnější přetypování (static_cast, const_cast, reinterpreter_cast, dynamic_cast).
13. Implementace konkrétní aplikace v C++ s využitím polymorfismu a abstraktní třídy.
- 1. Základní prvky jazyků C++, C# a JAVA.
- Literatura
- povinná literatura
- ECKEL, B., ALLISON C. Thinking in C++, Volume 2: Practical Programming. Prentice Hall, 2003. ISBN 978-0130353139. info
- ECKEL, B. Myslíme v jazyku C++. Praha: Grada Publishing, a.s., 2000. ISBN 80-247-9009-2. info
- ECKEL, B. Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1). Prentice Hall, 2000. ISBN 978-0139798092. info
- PECINOVSKÝ, R., VIRIUS, M. Objektové programování 1. Grada, Praha, 1996. ISBN 80-7169-366-9. info
- PECINOVSKÝ, R., VIRIUS, M. Objektové programování 2. Grada, Praha, 1996. ISBN 80-7169-436-3. info
- doporučená literatura
- STROUSTRUP, B. The C++ Programming Language, Special Edition. Indianapolis: AT&T - Addison Wesley, Inc., 2001. ISBN 0-201-70073-5. info
- KOENIG, A., MOO, B. Accelerated C++: Practical Programming by Example. Addison-Wesley Professional, 2000. ISBN 978-0201703535. info
- VIRIUS, M. Programování v C++. ČVUT Praha, 1998. ISBN 80-0101-874-1. info
- Výukové metody
- Demonstrace dovedností
Seminární výuka - Metody hodnocení
- Známkou
- Informace učitele
- Seminární práce, zápočet, min 50% účast na seminářích
Ostatní studijní zátěž: vyhledávání a zpracování zdrojů na Internetu.
Aktivity Náročnost [h] Ostatní studijní zátěž 41 Přednáška 26 Seminář 13 Zkouška 40 Celkem 120 - Další komentáře
- Předmět je dovoleno ukončit i mimo zkouškové období.
- Statistika zápisu (nejnovější)
- Permalink: https://is.slu.cz/predmet/opf/zima2013/INFNPOOP