Přednášky

Kliknutím na symbol diskety ([Uložit]) si můžete vybraný materiál uložit na disk počítače, případně otevřít přímo v prohlížeči. K zobrazení dokumentu ve formátu PDF (Portable Document Format) použijte aplikaci Adobe Acrobat Reader (na počítačích v univerzitní síti je obvykle nainstalovaná), kterou můžete získat zdarma na webu společnosti Adobe Systems Inc.

Prezentace neodpovídají zcela přesně jedné 3-hodinové přednášce z předmětu Programování v jazyce C – spíše pokrývají určité souvislé tématické celky. Obvykle se tedy nestane, že první týden semestru se odpřednáší přednáška číslo 1, druhý týden číslo 2, atd.

 Čí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]
(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]
(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]
(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]
(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]
(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]
(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]
(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]
(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]
(9) Znakové a řetězcové konstanty, zpracování znaků, matematické funkce, generátor náhodných čísel. [Uložit]
(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]
(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]
(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]
(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]
(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]
(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]
(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]
(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]
(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]
(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]

Obsah a provedení přednášek © Kamil Ekštein, 2006 – 2011. Všechna práva vyhrazena. Žádná jejich část nesmí být publikována a šířena žádným způsobem a v žádné podobě bez výslovného svolení autora. Přednášky, prosím, používejte v souladu s autorským zákonem.

V přednáškách se mohou přes veškerou snahu a péči, kterou jim věnuji, vyskytovat chyby, ať už formální nebo věcné. Pokud nějakou chybu najdete, budu vám vděčný, když mě na ní upozorníte (osobně nebo e-mailem).