Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2018/2019

Programovací jazyk C/C++

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
A2B37CPP Z 4 2+2c česky
Korekvizita:
Bezpečnost práce v elektrotechnice pro bakaláře (BEZB)
Základní školení BOZP (BEZZ)
Přednášející:
Petr Skalický (gar.), Josef Dobeš (gar.), Martin Mudroch, Stanislav Vítek
Cvičící:
Petr Skalický (gar.), Josef Dobeš (gar.), Martin Mudroch, Václav Navrátil, Stanislav Vítek
Předmět zajišťuje:
katedra radioelektroniky
Anotace:

Úkolem předmětu je zajistit potřebnou znalost jazyka C a základních rysů jazyka C++ jako v současné době jednoho z dominantních programovacích jazyků v mnoha oborech vědy a techniky, jako je např. programování mikroprocesorů, numerická matematika apod. Dovednosti v jazyce C/C++ jsou tedy nezbytné pro práci studentů v nejrůznějších formách projektové výuky a pro splnění zadání mnohých závěrečných prací. Předmět navazuje na základní výuku programování a algoritmizace v první fázi studia realizovanou především na bázi programovacího jazyka Java. Znalost syntaxe mnohých rysů jazyka Java (které byly převzaty v jazyka C) je tedy výhodou pro studium tohoto předmětu. Osnova se tedy v první fázi zaměřuje na výklad odlišností jazyka C od jazyka Java a zároveň se tímto způsobem takto přirozeně stručně projde přehled syntaxe základních rysů jazyka C. Další přednášky jsou již věnovány specifickým rysům jazyka C jako jsou především ukazatele, adresová aritmetika apod. Následuje výklad práce se strukturami a jejich poli a přehled standardních knihoven jazyka C. Předmět je zakončen výkladem nových rysů jazyka ve standardech C99 a C++. V úvodu této části předmětu jsou definovány nové datové typy, nové typy vstupů a výstupů a dynamická alokace polí. Následuje výklad základních rysů objektového programování v C++, práce s třídami, s konstruktory a destruktory. Výklad je zakončen hierarchií tříd a odvozenými třídami a praktickým využitím přetížení operátorů (např. komplexní aritmetika). Cvičení jsou laboratorní s využitím volně šířených vývojových prostředí jako je např. systém OpenWatcom.

Výsledek studentské ankety předmětu je zde: http://www.fel.cvut.cz/anketa/aktualni/courses/A2B37CPP

Požadavky:

Doporučená prerekvizita: předmět „Programování“ - A0B36PRI nebo A0B36PR1 (podle studijního programu studenta)

Studijní materiály: viz http://radio.feld.cvut.cz/personal/dobes2/dobes.cz.pdf a https://moodle.kme.fel.cvut.cz/moodle/login/index.php (materiály se budou postupně objevovat v průběhu semestru)

Podmínka zápočtu: alespoň poloviční počet bodů v testu na konci semestru

Osnova přednášek:

1. Základy programovaní v jazyce C, charakteristika jazyka, model kompilace, struktura programu, hlavičkové soubory, makra, preprocesor jazyka C, podmíněný překlad, způsoby ladění v jazyce C

2. Odlišnosti jazyka C od jazyku Java: proměnné, specifikátory a jejich přetypování, operátory. Řídící struktury, cykly a možnosti ukončení, vstup/výstup

3. Odlišnosti jazyka C od jazyku Java: funkce, volání hodnotou a odkazem, prototypy, statické proměnné, proměnné typu register, in line funkce, blokové struktury. Pole, deklarace a inicializace, prvky pole, vícerozměrná pole, přístup k poli ve funkcích

4. Pointery (1) a adresy, pointery a argumenty funkcí

5. Pointery (2) a pole, adresová aritmetika, přístup k dílčím částem proměnných

6. Řetězce, funkce pracující s řetězci, znakové pointery, pole pointeru a jeho inicializace, pointery na pointery, pointery na funkce, uživatelské datové typy

7. Struktury, datové struktury, pole struktur, pointery na struktury

8. Struktury odkazující se samy na sebe, pole bitů, uniony

9. Přístup do standardních knihoven, standardní a formátované vstupy a výstupy, proměnný počet parametrů (printf), formátové konverze

10. Přístup k souborům, systémová volání, přístup na periferie (vstup/výstup), organizace paměti, dynamická správa paměti

11. Nové rysy jazyka C implementované ve standardech C99 a C++ (nové datové typy, nové typy vstupů a výstupů, dynamická alokace polí)

12. Základy objektového programování v C++, třídy, data přiřazená k třídám, statické členy tříd, konstruktory a destruktory

13. Hierarchie tříd (private, protected, public), odvozené třídy, friend funkce, přetížení operátorů, šablony a výjimky

14. Rezerva

Osnova cvičení:

1. Úvod, cíl cvičení. Úvod do vývojového prostředí. Preprocesor, podmíněný překlad. Základní struktura programu, formátování programu, odsazování, první program

2. Proměnné a aritmetika, program pro přepočet veličin, funkce standardního vstupu a výstupu, formátování vypočtených dat. Program pro kopírování textu ze vstupu na výstup se znakovou úpravou

3. Práce s typy dat, přetypování, rozdělení čísla na jednotlivé byty

4. Funkce, zápis funkce a ověření její činnosti (rotace, inverze, zjištění počtu bitů proměnné)

5. Práce s poli (1), součin a součet matic, výpočet determinantu, interpolace funkce

6. Práce s poli (2), pole jako parametr

7. Práce s pointery (1), úprava realizovaného programu pomocí pointerů

8. Práce s pointery (2), pointery na funkce, pointery na pointery

9. Vytváření struktur, union

10. Nové datové typy v C99 a C++. Přesnost aritmetiky, deklarace kind. Nové standardní knihovny, např. vstupů a výstupů (cin, cout, cerr). Dynamická alokace polí, zdokonalená práce s poli ve standardu C99

11. Příklady vytváření tříd a jejich používání. Význam konstruktorů a destruktorů, vícenásobné konstruktory. Statické členy tříd

12. Způsob přístupu ke kódu a datům v případě deklarací private, protected a public. Použití friend funkcí. Praktický příklad využití přetěžování operátorů - komplexní aritmetika

13. Test

14. Zápočet

Cíle studia:

Cílem předmětu je zajistit základní znalost programovacího jazyka C/C++ pro samostatnou práci studentů v semestrálních projektech a závěrečných pracích.

Studijní materiály:

Herout, P.: Učebnice jazyka C. III. vyd. Kopp, Č.Budějovice, 2008.

Kernighan, B.W.-Ritchie, D.M.: Programovací jazyk C. Computer Press, Brno, 2006. ISBN: 80-251-0897-X.

Herout, P.: Učebnice jazyka C - 2 díl, Kopp, Č.Budějovice, 2007. ISBN: 80-85828-50-2.

Richta, K., Šaloun, P.: Programovací jazyk C, vyd.ČVUT, Praha, 1998.

Brůha, I., Richta, K.: Programming Language C, vyd.ČVUT, Praha, 1996.

Stroustrup, B.: The C++ Programming Language, 3rd edition, Addison-Wesley, Boston, 1997.

Virius, M.: Od C k C++. II. vyd. Kopp, 2002.

Poznámka:

Volitelný předmět pro všechny bakalářské programy s výjimkou STM

Další informace:
https://moodle.fel.cvut.cz/courses/A2B37CPP
Rozvrh na zimní semestr 2018/2019:
Rozvrh není připraven
Rozvrh na letní semestr 2018/2019:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
místnost T2:C3-438
Dobeš J.
Vítek S.

09:15–10:45
(přednášková par. 1)
Dejvice
Laborator
místnost T2:A4-402
Navrátil V.
14:30–16:00
(přednášková par. 1
paralelka 101)

Dejvice
Laborator
místnost

16:15–17:45
(přednášková par. 1
paralelka 103)

místnost

18:00–19:30
(přednášková par. 1
paralelka 104)

místnost

12:45–14:15
(přednášková par. 1
paralelka 107)

St
Čt

Předmět je součástí následujících studijních plánů:
Platnost dat k 23. 7. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1673706.html