Detail předmětu

Jazyk C

CPP Ak. rok 2005/2006 zimní 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

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

Základní znalost programování v C, včetně práce s ukazateli a adresovou aritmetikou. Tvorba modulárních programů v C.

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.

Požadované prerekvizitní znalosti a dovednosti

Základy programování a algoritmizace.

Literatura studijní

  • Herout, P.: Učebnice jazyka C, 4. vydání, Kopp, 2004, ISBN 80-7232-220-6
  • Harbison S., Steele G.: C: Referenční příručka jazyka C, Science, 1996, ISBN 80-901475-50
  • Eckel, B.: Myslíme v jazyku C++, GRADA, 2000, ISBN:80-247-9009-2
  • Eckel, B.: Thinking in C++, Volume 1: Introduction to Standard C++, 2nd edition, Prentice-Hall, 2000, ISBN:0139798099, [dostupné elektronicky na WWW]
  • Materiály na WWW stránce předmětu IJC

Literatura referenční

  • Kernighan, B., Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989, ISBN 0-13-110362-8
  • Harbison S., Steele G.: C: A Reference Manual, Fifth Edition, Prentice Hall, 2002, ISBN 0-13-089592-X
  • Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997, ISBN: 0201889544
  • Eckel, B.: Thinking in C++, Volume 1: Introduction to Standard C++, 2nd edition, Prentice-Hall, 2000, ISBN:0139798099

Osnova přednášek

  1. Úvod, organizace studia. Charakteristika jazyka C (K&R, ANSI C, ISO C90, ISO C99). Příklady programů v C.
  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

domácí úlohy

Nahoru