Detail předmětu

Jazyk C

IJC Ak. rok 2021/2022 letní semestr 5 kreditů

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.

Garant předmětu

Zástupce garanta předmětu

Jazyk výuky

český

Zakončení

zkouška (písemná)

Rozsah

39 hod. přednášky, 13 hod. projekty

Bodové hodnocení

70 zkouška, 30 projekty

Zajišťuje ústav

Přednášející

Cvičící

Stránky předmětu

Získané dovednosti, znalosti a kompetence z 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.

Cíle předmětu

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.

Proč je předmět vyučován

Tento volitelný předmět je vhodný pro rozšíření znalostí nejen o specifické části jazyka C (ukazatelová aritmetika, modularita, vytváření knihoven), ale také pro doplnění znalostí v oblastech ladění programů a optimalizace kódu.

Prerekvizity

Technické vybavení

volně dostupné

  • GCC

Literatura studijní

  • Herout, P.: Učebnice jazyka C, 6. vydání, Kopp, 2010
  • Kernighan, B.; Ritchie, D.: Programovací jazyk C, Computer Press, 2006
  • Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
  • Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
  • Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
  • ISO: Programming languages - C, WG14/N869 Committee Draft, 1999
  • ISO: Programming languages - C, N1570 Committee Draft, 2011
  • ISO: Programming languages - C, N2176 Committee Draft, 2017

Osnova přednášek

  1. Ú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ů.
  2. Systematická definice jazyka C: lexikální jednotky, syntaxe deklarací, jednoduché typy, proměnné.
  3. 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.
  4. Řetězce, vícerozměrná pole, struktury a unie.
  5. Výčtový typ. Výrazy, operátory, konverze, priority operátorů. Příkazy.
  6. Funkce a předávání parametrů. Ukazatele na funkce. Argumenty programu (argc, argv). Preprocesor jazyka C: makra, podmíněný překlad.
  7. Struktura programu, modularita, překladové jednotky. Principy sestavování programu. Program "make".
  8. 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.
  9. Použití standardních knihoven, příklady. Práce s řetězci a pamětí. Zpracování časových údajů. Matematická knihovna.
  10. Vytváření a použití knihoven. Sestavování programů napsaných v různých jazycích. 
  11. 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.
  12. Vstup/výstup, streamy. Základy použití standardních knihoven C++ (kontejnery, iterátory, algoritmy, řetězce). Praktické příklady v C++.
  13. 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ů.

Osnova ostatní - projekty, práce

  • 2 domácí úkoly

Průběžná kontrola studia

2 domácí úkoly (30% bodů)

Kontrolovaná výuka

Úč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

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Útpřednáškavýuky D0206 D105 17:0019:50 1BIA 1BIB 2BIA 2BIB 3BIT xx

Zařazení předmětu ve studijních plánech

  • Program BIT, 1. ročník, volitelný
  • Program IT-BC-3, obor BIT, 1. ročník, volitelný
Nahoru