Detail předmětu
Jazyk C
FIT-IJC Ak. rok: 2021/2022 Letní semestr
Jazyk C podle normy ISO. Systematická definice syntaxe a sémantiky, práce s ukazateli, modularita, standardní knihovny. Ladění a testování programů. Neobjektové základy C++ a použití standardních knihoven.
Jazyk výuky
čeština
Počet kreditů
5
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Základní znalost programování v C, včetně práce s ukazateli a adresovou aritmetikou. Tvorba jednoduchých modulárních programů v C.
Způsob a kritéria hodnocení
2 domácí úkoly (30% bodů)
Učební cíle
Cílem je seznámit studenty s jazykem ISO C a základními programovacími technikami v C. Důraz je kladen na různá nebezpečí vyplývající z použití ukazatelů a dalších rysů jazyka C.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Účast na přednáškách v tomto předmětu není kontrolována. Znalosti studentů jsou ověřovány vypracováním 2 domácích úkolů a závěrečnou zkouškou
Použití předmětu ve studijních plánech
Program B-MAI-P: Matematické inženýrství, bakalářský, volitelný
Program IT-BC-3: Informační technologie, bakalářský
obor BIT: Informační technologie, volitelný
Program BIT: Informační technologie, bakalářský
specializace BITP: Informační technologie, volitelný
Typ (způsob) výuky
Přednáška
39 hod., nepovinná
Vyučující / Lektor
Osnova
- Úvod. Charakteristika jazyka C (K&R, ANSI C, ISO C90, ISO C99, ISO C11, ISO C18). Základní konstrukce jazyka. Příklady jednoduchých programů.
- Systematická definice jazyka C: lexikální jednotky, syntaxe deklarací, jednoduché typy, proměnné.
- Pojmy adresový prostor, adresa, ukazatel. Souvislost ukazatelů a polí, adresová aritmetika. Zarovnávání adres, little/big endian. Dynamické přidělování paměti.
- Řetězce, vícerozměrná pole, struktury a unie.
- Výčtový typ. Výrazy, operátory, konverze, priority operátorů. Příkazy.
- Funkce a předávání parametrů. Ukazatele na funkce. Argumenty programu (argc, argv). Preprocesor jazyka C: makra, podmíněný překlad.
- Struktura programu, modularita, překladové jednotky. Principy sestavování programu. Program "make".
- Standardní knihovny jazyka C – přehled a příklady použití. Podpora ladění programů. Klasifikace znaků, internacionalizace aplikací. Vstup/výstup, práce se soubory.
- Použití standardních knihoven, příklady. Práce s řetězci a pamětí. Zpracování časových údajů. Matematická knihovna.
- Vytváření a použití knihoven. Sestavování programů napsaných v různých jazycích.
- Základy C++, typické rozdíly mezi C a C++. Typ reference, nové operátory C++, základy přetěžování funkcí. Prostory jmen.
- Vstup/výstup, streamy. Základy použití standardních knihoven C++ (kontejnery, iterátory, algoritmy, řetězce). Praktické příklady v C++.
- Analýza výkonnosti programů, optimalizace programů. Pravidla pro psaní přenositelných programů. Nástroje pro kontrolu správnosti programů. Nástroje pro vytváření dokumentace programů.
Projekt
13 hod., povinná
Osnova
- 2 domácí úkoly