| Číslo |
Stručný obsah přednášky |
Soubor |
| (0) |
Úvodní informace – představení předmětu, jeho cíle a náplň. Rámcový program přednášek
a cvičení. Organizace předmětu, průběh semestru. Požadavky k zápočtu a zkoušce, podmínky absolvování
předmětu (totéž je také zde na webu). Důležité informace a zdroje studijních materiálů. |
![[Uložit]](img/save.png) |
| (1) |
Základní technické a historické informace o jazyce C. Použití, výhody a nevýhody, silné a slabé
stránky. Stručný úvod do lexiky a syntaxe, nejjednodušší programy. Program typu "Hello, world!",
vazba programu na operační prostředí. |
![[Uložit]](img/save.png) |
| (2) |
Bližší pohled na syntax jazyka C, klíčová slova, základní konstrukce řízení běhu programu.
Podmíněné a nepodmíněné větvení programu (if – else, return, break, continue), konstrukce
switch, cykly (for, while, do). |
![[Uložit]](img/save.png) |
| (3) |
Deklarace proměnných, jednoduché datové typy a jejich definice, datový typ pole,
ukazatel, výčet, struktura, bitové pole, union, datový typ funkce, definice vlastního
datového typu, definice konstant, definice funkcí, přiřazovací příkaz, vstupně-výstupní
operace, prázdný příkaz a příkaz skoku. |
![[Uložit]](img/save.png) |
| (4) |
Výrazy, operátory, volání funkcí, předávání parametrů funkcím, přetypování čili
explicitní typová konverze, podmíněný výraz, dosazovací výraz a dosazovací operátory,
čárkovaný výraz. |
![[Uložit]](img/save.png) |
| (5) |
Preprocesor jazyka C, lexikální konvence preprocesoru, definice maker preprocesoru a
maker s parametry, rekurze maker, předdefinovaná makra v ANSI C, vkládání hlavičkových
souborů, podmíněný překlad, předávání informací překladači - příkaz #pragma. |
![[Uložit]](img/save.png) |
| (6) |
Řízený a automatizovaný překlad - nástroj make, příprava makefile, komentáře, tvorba
pravidel, explicitní a implicitní pravidla, definice cílů, symbolické cíle, makra v makefile,
příkazy operačního systému v makefile. |
![[Uložit]](img/save.png) |
| (7) |
Vstupně-výstupní operace, soubory a proudy, standardní proudy stdin, stdout a stderr,
operace se soubory, formátovaný vstup a výstup, chyby při práci se soubory, jejich detekce
a řešení, pokročilé souborové operace. |
![[Uložit]](img/save.png) |
| (8) |
Správa paměti, základní operace s pamětí - alokace a uvolnění bloku, realokace bloků,
dynamická pole, pole jako argumenty funkcí, znakové řetězce, funkce pro práci s řetězci. |
![[Uložit]](img/save.png) |
| (9) |
Znakové a řetězcové konstanty, zpracování znaků, matematické funkce, generátor
náhodných čísel. |
![[Uložit]](img/save.png) |
| (10) |
Datum a čas, měření doby běhu programu, práce s kalendářním časem, výpočet rozdílu
časových údajů. Řídicí funkce a diagnostika, ladicí makra, příkazový procesor operačního
systému, násilné ukončení programu, ukončovací funkce, signály. |
![[Uložit]](img/save.png) |
| (11) |
Standardní rozšíření jazyka podle normy ANSI C, ošetření chybových stavů, práce s
proměnnými operačního prostředí, prohledávání bisekcí, řazení algoritmem QuickSort.
Funkce s proměnným počtem argumentů. |
![[Uložit]](img/save.png) |
| (12) |
Úvod do objektově orientovaného jazyka C#. Nejdůležitější změny oproti jazyku C. Ukázky
některých syntaktických elementů. Tato přednáška nebude v ZS 2010/2011 zařazena, kdo
má o hlubší studium jazyka C# zájem, zapíše si předmět KIV/NET. |
![[Uložit]](img/save.png) |
| (13) |
Připojování externích binárních modulů - linker, příprava externího modulu v assembleru,
práce se segmenty a segmentovými registry procesoru, překlad assemblerem, předávání
parametrů podprogramu v assembleru. |
![[Uložit]](img/save.png) |
| (14) |
Úvod do objektově orientovaného jazyka C++. Nejdůležitější změny oproti jazyku ANSI C.
Nové syntaktické elementy - definice konstant, inline funkce, předávání parametrů funkcím
odkazem, odkaz jako návratový typ funkce, deklarační příkaz, typový systém a třídy,
datový typ bool. Přetěžování. Vytváření a rušení instancí objektů - operátory new a
delete. Jmenné prostory. |
![[Uložit]](img/save.png) |
| (15) |
Objekty v C++, definice třídy, deklarace objektu. Specifikátory přístupu k prvkům
objektu, členské funkce čili metody, modifikátory metod. Konstruktor a destruktor.
Dynamické instance objektů. Přetěžování operátorů. |
![[Uložit]](img/save.png) |
| (16) |
Dědičnost tříd, specifikace dědění, význam a užití specifikátorů. Polymorfismus.
Abstraktní metody. Vícenásobná dědičnost, kolize při ní (sprostý obrázek). |
![[Uložit]](img/save.png) |
| (17) |
Genericita, šablony. Šablony funkcí pro jeden či více datových typů. Šablony tříd a jejich metod.
Knihovna STL (Standard Template Library), kontejnery (třída Vector), příklady a ukázky použití. |
![[Uložit]](img/save.png) |
| (18) |
Programátorský model procesoru. Registry: všeobecné registry (střadače), segmentové
registry, zvláštní registry, příznakový registr. Typy dat, endian procesoru. Přerušení.
Volání podprogramů. Paměťové modely. |
![[Uložit]](img/save.png) |
| (19) |
Multiplatformní knihovna na tvorbu grafických uživatelských rozhraní Qt. Architektura
Qt. Získání, instalace a specifika překladu programů s Qt. Minimální aplikace v Qt.
Přidávání vizuálních komponent - widgetů. Řízení činnosti aplikace událostmi, signály a
sloty. Qt Designer. |
![[Uložit]](img/save.png) |