Název:

Jazyk C

Zkratka:CPP
Ak.rok:ukončen 2005/2006
Semestr:zimní
Studijní plán:
ProgramOborRočníkPovinnost
EI-BC-3VTB2.st/2.rčvolitelný
EI-MGR-3VTN3.volitelný
EI-MGR-5VTI2.st/3.rčvolitelný
Vyučovací jazyk:čeština
Kredity:5 kreditů
Ukončení:zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvičenílab. cvičenípoč. cvičeníjiná
Rozsah:3900013
 zkouškatestycvičenílaboratořeostatní
Body:7000030
Garant:Peringer Petr, Dr. Ing., UITS
Přednášející:Peringer Petr, Dr. Ing., UITS
Cvičící:Grulich Lukáš, Ing., UITS
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav inteligentních systémů FIT VUT v Brně
Navazující:
Základy překladačů (ZAP), UIFS
 
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.
Anotace:
  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ů.

Požadované prerekvizitní znalosti a dovednosti:
  Základy programování a algoritmizace.
Získané dovednosti, znalosti a kompetence:
  Základní znalost programování v C, včetně práce s ukazateli a adresovou aritmetikou. Tvorba modulárních programů v C.
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ů.
Osnova ostatní - projekty, práce:
 2 domácí úkoly, každý obsahuje 2 programy v C
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
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
Průběžná kontrola studia:
  domácí úlohy