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

Nabízen zahradnič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.

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

PRINZ, P., KIRCH-PRINZ, U. A Complete Guide to Programming in C+. Sudbury: Jones and Bartlett Computer Science, 2002
DALE, N., WEEMS, CH. Programming in C+. Sudbury: Jones and Bartlett Computer Science, 2005

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

  • Program EEKR-BC bakalářský

    obor BC-AMT , 1. ročník, letní semestr, povinný
    obor BC-EST , 1. ročník, letní semestr, povinný
    obor BC-MET , 1. ročník, letní semestr, povinný
    obor BC-SEE , 1. ročník, letní semestr, povinný
    obor BC-TLI , 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í.