Detail předmětu

Počítače a programování 2

FEKT-BPC-PC2MAk. rok: 2018/2019

Předmět je zaměřen na získání základních znalostí programovacího jazyka ANSI/ISO C . Studenti se učí algoritmizaci zadané úlohy, použití správných datových typů a návrhu vhodných datových struktur, realizaci algoritmu v jazyce ANSI/ISO C. Jsou prezentovány vybrané algoritmy pro zpracování numerických a textových dat. Studenti budou seznámeni se standardními knihovnami a vybranými funkcemi z nich, prací s ukazateli, soubory, dynamickou alokací paměti a tvorbou vlastních knihoven funkcí.

Jazyk výuky

čeština

Počet kreditů

5

Garant předmětu

Výsledky učení předmětu

Absolvent předmětu je schopen:
- vysvětlit funkci příkazů jazyka C,
- popsat vlastnosti základních datových typů,
- navrhnout strukturu pro reprezentaci složitější dat,
- použít funkce obsažené ve standardních knihovnách,
- sestavit algoritmus pracující s jednorozměrnými a vícerozměrnými poli,
- pracovat se soubory
- sestavit algoritmus pro seřazení seznamu hodnot, pro převod číselných soustav, pro maticové a vektorové operace, pro zpracování vstupních dat neznámého rozsahu atd.
- vytvořit knihovnu funkcí

Prerekvizity

Jsou požadovány znalosti na úrovni středoškolského studia.

Plánované vzdělávací činnosti a výukové metody

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.

Způsob a kritéria hodnocení

Podmínky pro úspěšné ukončení předmětu stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Osnovy výuky

1. Rozdělení a organizace kurzu. Historie vývoje jazyka C, standardy a charakteristika jazyka. Základní konstrukce jazyka, struktura programu a jeho tvorba. Orientace ve vývojovém prostředí IDE. Proměnné v jazyce C a identifikátory proměnných, jednoduché datové typy- pole. Deklarace a inicializace proměnných, globální a lokální proměnné – rozsah platnosti proměnných. Standardní vstup a výstup, jednoduché programy.
2. Výrazy, aritmetické konverze a operátory. Priorita operátorů. Přiřazovací příkaz, L-hodnota, R-hodnota. Konstanty.
3. Příkazy větvení, if, else, příkazy switch a case. Realizace cyklů v jazyce C.
4. Řetězce, jednorozměrné pole naplněné řetězcem zakončeným znakem NULL. Řetězcové literály, ASCII tabulka a znakové sady. Funkce pro práci s řetězci.
5. Datový typ ukazatel. Ukazatel a pole, ukazatelová aritmetika. Pole ukazatelů.
6. Funkce. Rekurzivní funkce. Práce s pamětí – rozsah platnosti proměnných.
7. Pokročilé datové typy – Struktury, unie, výčtový typ. Ladění programu.
8. Dynamická alokace paměti, příklad jednoduché databáze.
9. Hlavičkové soubory, knihovny. Příkazy preprocesoru.
10. Práce se soubory, zápis do souboru a čtení.
11. Vazby dynamických proměnných, lineární seznamy a stromy.
12. Modifikátory proměnných const, volatile. Nové normy jazyka.

Učební cíle

Cílem předmětu je seznámit studenty s obecnými programovacími návyky a algoritmizací zadaných úloh, seznámit je s jazykem ANSI/ISO C a základními programovacími technikami v jazyce C.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Základní literatura

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)
RAIDA, Z., FIALA, P. Počítače a programování 2. Edice "Elektronická skripta". Brno: FEKT VUT v Brně, 2002. (CS)

Zařazení předmětu ve studijních plánech

  • Program BPC-MET bakalářský 1 ročník, letní semestr, povinný

  • Program EEKR-CZV celoživotní vzdělávání (není studentem)

    obor ET-CZV , 1 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Rozdělení a organizace kurzu. Historie vývoje jazyka C, standardy a charakteristika jazyka. Základní konstrukce jazyka, struktura programu a jeho tvorba. Orientace ve vývojovém prostředí IDE. Proměnné v jazyce C a identifikátory proměnných, jednoduché datové typy- pole. Deklarace a inicializace proměnných, globální a lokální proměnné – rozsah platnosti proměnných. Standardní vstup a výstup, jednoduché programy.
2. Výrazy, aritmetické konverze a operátory. Priorita operátorů. Přiřazovací příkaz, L-hodnota, R-hodnota. Konstanty.
3. Příkazy větvení, if, else, příkazy switch a case. Realizace cyklů v jazyce C.
4. Řetězce, jednorozměrné pole naplněné řetězcem zakončeným znakem NULL. Řetězcové literály, ASCII tabulka a znakové sady. Funkce pro práci s řetězci.
5. Datový typ ukazatel. Ukazatel a pole, ukazatelová aritmetika. Pole ukazatelů.
6. Funkce. Rekurzivní funkce. Práce s pamětí – rozsah platnosti proměnných.
7. Pokročilé datové typy – Struktury, unie, výčtový typ. Ladění programu.
8. Dynamická alokace paměti, příklad jednoduché databáze.
9. Hlavičkové soubory, knihovny. Příkazy preprocesoru.
10. Práce se soubory, zápis do souboru a čtení.
11. Vazby dynamických proměnných, lineární seznamy a stromy.
12. Modifikátory proměnných const, volatile. Nové normy jazyka.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1. Rozdělení a organizace kurzu. Historie vývoje jazyka C, standardy a charakteristika jazyka. Základní konstrukce jazyka, struktura programu a jeho tvorba. Orientace ve vývojovém prostředí IDE. Proměnné v jazyce C a identifikátory proměnných, jednoduché datové typy- pole. Deklarace a inicializace proměnných, globální a lokální proměnné – rozsah platnosti proměnných. Standardní vstup a výstup, jednoduché programy.
2. Výrazy, aritmetické konverze a operátory. Priorita operátorů. Přiřazovací příkaz, L-hodnota, R-hodnota. Konstanty.
3. Příkazy větvení, if, else, příkazy switch a case. Realizace cyklů v jazyce C.
4. Řetězce, jednorozměrné pole naplněné řetězcem zakončeným znakem NULL. Řetězcové literály, ASCII tabulka a znakové sady. Funkce pro práci s řetězci.
5. Datový typ ukazatel. Ukazatel a pole, ukazatelová aritmetika. Pole ukazatelů.
6. Funkce. Rekurzivní funkce. Práce s pamětí – rozsah platnosti proměnných.
7. Pokročilé datové typy – Struktury, unie, výčtový typ. Ladění programu.
8. Dynamická alokace paměti, příklad jednoduché databáze.
9. Hlavičkové soubory, knihovny. Příkazy preprocesoru.
10. Práce se soubory, zápis do souboru a čtení.
11. Vazby dynamických proměnných, lineární seznamy a stromy.
12. Modifikátory proměnných const, volatile. Nové normy jazyka.