Detail předmětu

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

FEKT-BPC-PC2MAk. rok: 2022/2023

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)

Elearning

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

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

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Algoritmizace (rozšíření základních poznatků z předchozího semestru). Definice úlohy, definice vstupů/výstupů, zápis algoritmu v metajazyku, přepis do programovacího jazyka.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1. Algoritmizace (rozšíření základních poznatků z předchozího semestru). Definice úlohy, definice vstupů/výstupů, zápis algoritmu v metajazyku, přepis do programovacího jazyka.
2. Úvod do jazyka C. Základní typy proměnných, odvozené typy, konstanty, pole.
3. Výrazy, aritmetické konverze, aritmetické operátory, operátory posuvů, relační operátory, logické operátory, bitové operátory, přiřazovací operátory, priorita operátorů.
4. Řetězce a jejich operátory, knihovní funkce, standardní knihovna string.h.
5. Příkazy, složený příkaz, příkazy pro větvení, cykly a přenos řízení. Vývojový diagram.
6. Funkce. Deklarace funkce, metody volání funkcí, ošetření událostí, rekurze funkcí.
7. Pokročilé datové typy. Unie, výčtový typ, dynamické proměnné, ukazatel.
8. Objekty. Lexikální elementy, konstanty a řetězce, třídy objektů, typy objektů.
9. Uživatelské rozhraní Microsoft Visual C++ Studio. Grafické komponenty.
10. Algoritmy I. Vyhledání maxima a minima, třídění.
11. Algoritmy II. Práce s poli, maticové výpočty.
12. Algoritmy III. Práce se soubory ve Windows.
13. Algoritmy IV. Databázové systémy. Záznamy, třídění, vyhledávání, statistiky. Propojení databází.

Elearning