Popis předmětu - A2B37CPP
A2B37CPP | Programovací jazyk C/C++ | ||
---|---|---|---|
Role: | Rozsah výuky: | 2P+2C | |
Katedra: | 13137 | Jazyk výuky: | CS |
Garanti: | Zakončení: | Z | |
Přednášející: | Kreditů: | 4 | |
Cvičící: | Semestr: | L |
Webová stránka:
https://moodle.fel.cvut.cz/courses/A2B37CPPAnotace:
Ú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.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 semestruPoznámka:
Volitelný předmět pro všechny bakalářské programy s výjimkou SIT |
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 |
Stránka vytvořena 16.3.2025 17:50:58, semestry: L/2025-6, Z,L/2024-5, Z/2025-6, 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) |