Charles Explorer logo
🇨🇿

Programování 3

Předmět na Matematicko-fyzikální fakulta |
NMIN201

Sylabus

Kurs nízkoúrovňového programování v C/C++ s důrazem na objektové programování a objektový návrh programů. Předpokládá znalosti základního kurzu programování NMIN101 a NMIN102, na které navazuje.

* C: Základy

- Hello, world!

- deklarace proměnných (zatím jenom int) a přiřazování

- podmínky, cykly, break a continue

- deklarace a volání funkcí

* C: Aritmetika

- celočíselné typy

- floating-point typy

- aritmetické a bitové operátory

- relační a booleovské operátory

- přiřazovací operátory

- explicitní a automatické typové konverze

- literály (včetně typovaných)

- komplexní čísla

* C: Složené typy

- struct, union

- pole

- ukazatele

- kvalifikátory (const, volatile)

- jak číst složité deklarace

* Principy počítačů

- procesor, paměť, periferie

- organizace paměti: kód, statická data, dynamická data, zásobník

- uložení dat v paměti:

- celá čísla, dvojkový doplněk

- fixed-point reprezentace

- IEEE floaty

- znaky a různá jejich kódování

- překladač, linker, knihovny

* C: Práce s ukazateli

- dynamická alokace paměti

- spojové seznamy, stromy

- reprezentace polí pomocí pointerové aritmetiky

- práce s řetězci

* C: Preprocesor

- #include

- #define

- #if, #ifdef

* C: Ostatní

- switch, case, goto

- vedlejší efekty a synchronizační body

- knihovní typy

- různé knihovní funkce

- programy složené z více modulů, viditelnost identifikátorů

* C++: Objekty

- třídy, objekty, public/private, class/struct

- dědičnost a statické/virtuální metody

- konstruktory, destruktory

- konvece: gettery a settery

- přetěžování funkcí a operátorů

- objektový návrh

* C++: Standardní knihovna

- namespace

- stream

- pair

- vector

- string

- set, map

- iterátory a automatické typování deklarací

* C++: Ukazatele

- unique_ptr, shared_ptr

- reference

- copy/move semantika

- copy/move konstruktory

- konverzní konstruktory

- const_cast, static_cast, reinterpret_cast, dynamic_cast

* C++: Ostatní

- základní použití šablon

- výjimky

- knihovní algoritmy

- co za nás udělá překladač

Anotace

Kurs nízkoúrovňového programování v C/C++ s důrazem na objektové programování a objektový návrh programů.

Předpokládá znalosti základního kurzu programování NMIN111 Programování 1 a NMIN112 Programování 2, na které navazuje.