Popis předmětu - A2B37CPP

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
A2B37CPP Programovací jazyk C/C++
Role:V Rozsah výuky:2P+2C
Katedra:13137 Jazyk výuky:CS
Garanti:Dobeš J. Zakončení:Z
Přednášející:Dobeš J., Navrátil V., Skalický P., Vítek S. Kreditů:4
Cvičící:Dobeš J., Navrátil V. Semestr:L

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: A2B37CPP

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.

Osnovy 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

Osnovy 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

Literatura:

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.

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.pdfhttps://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

Poznámka:

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

Webová stránka:

https://moodle.fel.cvut.cz/courses/A2B37CPP

Klíčová slova:

Programovací jazyk C, Programovací jazyk C++, Programovací jazyk C/C++, C99, C++

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
BPOI1 Počítačové systémy V
BPOI_BO Před zařazením do oboru V
BPOI3 Softwarové systémy V
BPOI2 Informatika a počítačové vědy V
BPKYR1 Robotika V
BPKYR_BO Před zařazením do oboru V
BPKYR3 Systémy a řízení V
BPKYR2 Senzory a přístrojová technika V
BPKME1 Komunikační technika V
BPKME5 Komunikace a elektronika V
BPKME_BO Před zařazením do oboru V
BPKME4 Síťové a informační technologie V
BPKME3 Aplikovaná elektronika V
BPKME2 Multimediální technika V
BPEEM1 Aplikovaná elektrotechnika V
BPEEM_BO Před zařazením do oboru V
BPEEM2 Elektrotechnika a management V


Stránka vytvořena 27.7.2021 11:51:47, semestry: L/2021-2, L/2020-1, Z,L/2022-3, Z/2021-2, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: I. Halaška (K336), J. Novák (K336)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.