Detail předmětu
Computers and Programming 2
FEKT-CPC2Ak. rok: 2013/2014
Studenti se seznámí s algoritmizací úloh a jejich programování v jazyku C dle standardu ANSI do úrovně sestavování vlastních funkcí a jejich využívání. V rámci počítačových cvičení si studenti sestaví jednoduché konzolové aplikace v jazyce C.
Jazyk výuky
angličtina
Počet kreditů
5
Garant předmětu
Zajišťuje ústav
Nabízen zahraničním studentům
Všech fakult
Výsledky učení předmětu
Absolvent předmětu je schopen (1) sestavit jednoduchou konzolovou aplikaci v jazyce ANSI C a (2) sestavit vlastní knihovnu funkcí v jazyce ANSI C.
Prerekvizity
Jsou požadovány znalosti na úrovni středoškolského studia.
Korekvizity
Předpokládá se rozšíření znalostí z algoritmizace úloh a řešení lineárních rovnic.
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í
Studenti mohou získat maximálně 40 bodů za aktivní práci v počítačových cvičení, 30 bodů za zápočtový test na konci semestru a 30 bodů za individuální projekt v jazyce C.
Osnovy výuky
1. Vývoj softwarové aplikace, operační kód, instrukční soubor, jazyk symbolických adres, vyšší programovací jazyky, překlad, sestavování. Struktura programu, algoritmus, vývojový diagram, proměnné, datové typy, číselné formáty a jejich reprezentace v paměti, aritmetické a logické operace. Vývoj aplikace v prostředí Code::Blocks.
2. Úvod do jazyka C, základní struktura programu v jazyce C, funkce main(), proměnné, pole, výrazy, aritmetické konverze, operátory v jazyce C, priority operátorů, vstupy, výstupy. 3. 3. Jednoduchá konzolová aplikace v Code::Blocks.
4. Příkazy v jazyce C. Příkazy pro větvení a podmínky – if, else, switch, case; příkazy pro cykly – for, while, do-while; příkazy pro řízení přenosu – break, continue.
5. Řetězce, knihovní funkce pro práci s řetězci "stdio.h" a "string.h". Kopírování řetězců, prohledávání řetězců, porovnávání řetězců.
6. Ukazatele a pole. Vztah mezi polem a ukazatelem. Uložení pole v paměti. Indexy prvků polí.
7. Funkce v jazyce C. Hlavičky funkcí s parametrem, bez parametru, parametr volaný hodnotou a odkazem. Volání funkcí, návratová hodnota. Rekurzivní funkce.
8. Sestavení knihovny funkcí, přilinkování k aplikaci.
9. Pokročilé datové typy. Struktury, unie, výčtový typ.
10. Dynamické proměnné, alokace a dealokace v paměti.
11. Práce se soubory v jazyce C. Knihovní funkce pro práci se soubory, čtení, zápis. Zpracování textového souboru.
12. Vazby dynamických proměnných. Lineární seznamy, stromy. Příklad sestavení dynamické databáze.
13. Pokročilé algoritmy. Vyhledání maxima, minima, setřídění – selectsort, insertsort, bublesort.
2. Úvod do jazyka C, základní struktura programu v jazyce C, funkce main(), proměnné, pole, výrazy, aritmetické konverze, operátory v jazyce C, priority operátorů, vstupy, výstupy. 3. 3. Jednoduchá konzolová aplikace v Code::Blocks.
4. Příkazy v jazyce C. Příkazy pro větvení a podmínky – if, else, switch, case; příkazy pro cykly – for, while, do-while; příkazy pro řízení přenosu – break, continue.
5. Řetězce, knihovní funkce pro práci s řetězci "stdio.h" a "string.h". Kopírování řetězců, prohledávání řetězců, porovnávání řetězců.
6. Ukazatele a pole. Vztah mezi polem a ukazatelem. Uložení pole v paměti. Indexy prvků polí.
7. Funkce v jazyce C. Hlavičky funkcí s parametrem, bez parametru, parametr volaný hodnotou a odkazem. Volání funkcí, návratová hodnota. Rekurzivní funkce.
8. Sestavení knihovny funkcí, přilinkování k aplikaci.
9. Pokročilé datové typy. Struktury, unie, výčtový typ.
10. Dynamické proměnné, alokace a dealokace v paměti.
11. Práce se soubory v jazyce C. Knihovní funkce pro práci se soubory, čtení, zápis. Zpracování textového souboru.
12. Vazby dynamických proměnných. Lineární seznamy, stromy. Příklad sestavení dynamické databáze.
13. Pokročilé algoritmy. Vyhledání maxima, minima, setřídění – selectsort, insertsort, bublesort.
Učební cíle
Cílem předmětu je taktéž seznámit studenty se základy programování a algoritmizace s využitím jazyka C ve standardu ANSI do úrovně, kdy jsou studenti schopni sestavit vlastní jednoduché knihovny funkcí a použít je, pracovat se soubory (čtení a zápis), sestavit a používat struktury a dynamické proměnné.
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
DALE, N., WEEMS, CH. Programming in C+. Sudbury: Jones and Bartlett Computer Science, 2005
PRINZ, P., KIRCH-PRINZ, U. A Complete Guide to Programming in C+. Sudbury: Jones and Bartlett Computer Science, 2002
PRINZ, P., KIRCH-PRINZ, U. A Complete Guide to Programming in C+. Sudbury: Jones and Bartlett Computer Science, 2002
Zařazení předmětu ve studijních plánech
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í.
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í.
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í.