Detail předmětu
Počítače a programování 2
FEKT-KPC2AAk. rok: 2014/2015
Předmět je zaměřen na získání základních znalostí programovacího jazyka C a programátorských zkušeností.
Získané znalosti: základy jazyka C, standardní knihovny jazyka, mechanismus správy paměti v jazyce C a ukazatele, složené datové typy jazyka, práce se soubory, návrh vlastních knihoven jazyka, implementace základních algoritmů, programovací styly, kultura správy zdrojových souborů. Seznámení s testováním a hodnocením bezpečnosti programu. Rozšíření a odlišnosti jazyka C pro embedded zařízení, normy jazyka: C99, C1X.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
- navrhnout a realizovat program v jazyce C, za použití základních a složených datových typů a funkcí
- pracovat s pamětí a soubory
- orientovat se v cizích zdrojových textech
- využívat základní knihovny jazyka C
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Osnovy výuky
Optimalizace. Rozdělení na zdrojové a hlavičkové soubory (program ar) #define, makra, ternární operátor. Přehled jazyka a normy. Bitové operace.
2) Algoritmy - bloková schémata, rozbor úlohy, volba proměnných (static, extern...) ... Ukázky algoritmů pro třídění.
3) Standardní a formátovaný vstup a výstup. knihovna ctype.h (isalpha, atoi,itoa ...)
4) Práce se soubory.
5) enum. Stavový diagram. Knihovna math.h.
6) Pole jako datový typ (typedef). Ukazatel jako datový typ. Vyuziti ukazatele jako alias na existujici na proměnnou. (pojem dereference, reference)
7) Ukazatel jako parametr a návratová hodnota funkce. Konverze. Pole a ukazatele, ukazatelová aritmetika.
8) Dynamická alokace (stdlib.h). Vícerozměrná pole. Pole ukazatelů. Ukazatel na funkce.
9) Životnost a viditelnost automatických, statických a dynamických proměnných. Řetězce, knihovny pro práci s řetězci - string.h.
10) Složené datové typy - struktury, uniony. Přístupy k proměnných prvku a přes ukazatel. Priorita operátorů. Bitové pole jako C datový typ.
11) Inline funkce. Lineární seznamy, bin. stromy.
12) C99, C1X: _Bool, knihovna (stdbool.h), datovy typ complex, volne pole, literaly (pole, struktur).
13) Modifikátory proměnných - const, Volatile. Restrict. Opakování. Programovaci styly, defenzivní programování (bezpečnost).Kultura programování (SVN, doxygen),
Dotazy. ...
Obsah cvičení: praktické procvičení látky probrané na přednáškách.
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
Kernigham, B.W. Richie, D.M.: C Programming Language, Prentice Hall, 1988, ISBN 0-13-110362-8 (EN)
Kernigham, B.W. Richie, D.M (Virius,M.): Programovací jazyk C. Brno. Computer Press, 2006. ISBN 80-251-0897-X (CS)
PECINOVSKÝ, R., VIRIUS, M. Učebnice programování: základy algoritmizace. Praha: Grada Publishing, 1997 (CS)
PROKOP, J. Algoritmy v jazyku C a C++. Praha: Grada Publishing, 2008 (CS)
RICHTER, M., PETYOVSKÝ, P., HORÁK, K., KALOVÁ, I. elektronicke texty Prakticke programovani v cpp SL. Brno: 2004. (CS)
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Cvičení na počítači
Vyučující / Lektor