Detail předmětu

Jazyk C

IJC Ak. rok 2004/2005 letní semestr 5 kreditů

Aktuální akademický rok

Jazyk C podle normy ISO. Systematická definice syntaxe a sémantiky. Výrazy, příkazy. Funkce a předávání parametrů. Pole, struktury, unie, výčtový typ. Souvislost ukazatelů a polí, adresová aritmetika. Práce s řetězci. Dynamické přidělování paměti. Preprocesor jazyka C. Struktura programu, modularita, principy sestavování programu. Vytváření a použití knihoven. Standardní knihovny jazyka C. Vstup/výstup, práce se soubory. Vývojová prostředí, nástroje pro kontrolu správnosti programů. Neobjektové základy C++ a použití jeho standardních knihoven. Metody ladění a testování programů. Analýza výkonnosti programů, optimalizace programů. Pravidla pro psaní přenositelných programů.

Garant předmětu

Jazyk výuky

česky, anglicky

Zakončení

zkouška

Rozsah

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

Zajišťuje ústav

Získané dovednosti, znalosti a kompetence z předmětu

Znalost programování v C, včetně práce s ukazateli, adresovou aritmetikou a dynamicky alokovanou pamětí. Tvorba modulárních programů v C, používání a vytváření knihoven.

Student se naučí programovat.

Cíle předmětu

Cílem je seznámit studenty s jazykem ISO C a 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.

Doporučené prerekvizity

Požadované prerekvizitní znalosti a dovednosti

Nejsou žádné prerekvizity.

Literatura referenční

  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989 Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997 Plauger, P.J.: The Standard C Library, Prentice-Hall, 1992 ISO: Programming languages - C, WG14/N869 Committee Draft, 1999 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). Základní konstrukce jazyka. Příklady jednoduchých programů.
  2. Systematická definice jazyka C: lexikální jednotky, syntaxe deklarací, jednoduché typy, proměnné.
  3. Typ pole. 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. Komplexní čísla.
  10. Vytváření a použití knihoven. Vývojová prostředí, nástroje pro kontrolu správnosti programů. Nástroje pro vytváření dokumentace programů.
  11. Základy C++, typické rozdíly mezi C a C++. Typ reference, typ bool, 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. Sestavování programů napsaných v různých jazycích. Analýza výkonnosti programů, optimalizace programů. Pravidla pro psaní přenositelných programů.

Průběžná kontrola studia

Hodnocení studia je založeno na bodovacím systému. Pro úspěšné absolvování předmětu je nutno dosáhnout 50 bodů.

Kontrolovaná výuka

Výuka není kontrolována.

Nahoru