Název:

Jazyk C

Zkratka:IJC
Ak.rok:2010/2011
Semestr:letní
Studijní plán:
ProgramOborRočníkPovinnost
IT-BC-3BIT1.volitelný
Vyučovací jazyk:čeština
Informace veřejné:http://www.fit.vutbr.cz/study/courses/IJC/public/
Kredity:5 kreditů
Ukončení:zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.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í:Konečný Filip, Ing. (UITS)
Šimáček Jiří, Ing., Ph.D. (UITS)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav inteligentních systémů FIT VUT v Brně
Prerekvizity: 
Základy programování (IZP), UIFS
 
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.
Anotace:
  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.
Získané dovednosti, znalosti a kompetence:
  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. 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. Výčtový typ. Výrazy, operátory, konverze, priority operátorů.
  5. Funkce a předávání parametrů. Ukazatele na funkce. Argumenty programu (argc, argv). Preprocesor jazyka C: makra, podmíněný překlad.
  6. Struktura programu, modularita, překladové jednotky. Principy sestavování programu. Program "make".
  7. 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.
  8. Použití standardních knihoven, příklady. Práce s řetězci a pamětí. Zpracování časových údajů. Matematická knihovna. Komplexní čísla.
  9. Vytváření a použití knihoven. Vývojová prostředí, nástroje pro kontrolu správnosti programů. Nástroje pro vytváření dokumentace programů.
  10. 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.
  11. Vstup/výstup, streamy. Základy použití standardních knihoven C++ (kontejnery, iterátory, algoritmy, řetězce). Praktické příklady v C++.
  12. Knihovny a princip sestavování programů. Program make. Sestavování programů napsaných v různých jazycích.
  13. Analýza výkonnosti programů, optimalizace programů. Pravidla pro psaní přenositelných a bezpečných programů.
Osnova ostatní - projekty, práce:
 
  • 2 domácí úkoly
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++, International Standard ISO/IEC 14882, 1988
  • Herout, P.: Učebnice jazyka C, 3. vydání, Kopp, 1998
Literatura studijní:
 
  • Herout, P.: Učebnice jazyka C, 4. vydání, Kopp, 2004
  • Kernighan, B.; Ritchie, D.: Programovací jazyk C, Computer Press, 2006
  • Materiály dostupné na WWW
Průběžná kontrola studia:
  domácí úkoly
 

Vaše IPv4 adresa: 54.196.190.32
Přepnout na IPv6 spojení

DNSSEC [dnssec]