Detail předmětu

Jazyk C

FIT-IJCAk. rok: 2019/2020

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

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.

Doporučená nebo povinná literatura

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
ISO: Programming languages - C, WG14/N869 Committee Draft, 1999
ISO: Programming languages - C, N1570 Committee Draft, 2011

Způsob a kritéria hodnocení

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

Jazyk výuky

čeština, angličtina

Cíl

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

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

  • Program IT-BC-3 bakalářský

    obor BIT , 1. ročník, letní semestr, 5 kreditů, volitelný

  • Program BIT bakalářský, 1. ročník, letní semestr, 5 kreditů, volitelný
  • Program B-MAI-P bakalářský, 1. ročník, letní semestr, 5 kreditů, volitelný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova


  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ů.

Projekty

13 hod., povinná

Vyučující / Lektor

Osnova


  • 2 domácí úkoly

eLearning