Podklady přednášek pro aktuální akademický rok 2016/2017. Podklady se skládají z promítaných slidů, které jsou také k dispozici ve zkrácených verzích šetrnějších k případnému tisku, bez přechodů mezi snímky a ve formátu čtyř a devíti snímků na stránku.
Podklady tvoří podpůrný materiál a jejich učelem není nahradit vlastní zápisky z přednášky, které slouží také jako prostředek osvojení si studované problematiky.
Tématicky je náplň přednášek pokryta v knize K.N. King: C Programming A Modern Approach, Second Edition. W. W. Norton & Company, Inc., 2008, případně též Pavel Herout, Učebnice Jazyka C - 1. díl, Kopp, 2016. Před přednáškou je doporučeno pročíst si odkazované kapitoly.
#VTýden | Týden | Téma | Úterý 14:30 (Místnost T2:D3-208) |
---|---|---|---|
01 | 08. | Přednáška 01 - Informace o předmětu, Úvod do programování v C K. N. King: kapitoly 1, 2 a 3 | 21.02. - lec01 |
02 | 09. | Přednáška 02 - Výrazy, řídicí struktury a funkce K. N. King: kapitoly 4, 5, 6 a 20 | 28.02. - lec02 |
03 | 10. | Přednáška 03 - Datové typy: pole a ukazatele. Paměťové třídy. Volání funkcí K. N. King: kapitoly 7, 8, 9, 10, 11 a 18 | 07.03. - lec03 |
04 | 11. | Přednáška 04 - Pole, řetězce a ukazatele K. N. King: kapitoly 8, 11, 12, 13 a 17 | 14.03. - lec04 |
05 | 12. | Přednáška 05 - Datové typy: Složený typ, výčtový typ a bitová pole. Preprocesor a sestavení programu K. N. King: kapitoly 10, 14, 15, 16 a 20 | 21.03. - lec05 |
06 | 13. | Přednáška 06 - Vstup / výstup a standarní knihovny C K. N. King: kapitoly 21, 22, 23, 24, 26 a 27 | 28.03. - lec06 |
07 | 14. | Přednáška 07 - Paralení programování, paralelní výpočty a synchronizační primitiva (semafory, zprávy a sdílená paměť ) | 04.04. - lec07 |
08 | 15. | Přednáška 08 - Vícevláknové programování, modely aplikací, POSIX vlákna C11 vlákna | 11.04. - lec08 |
09 | 16. | Přednáška 09 - Praktická ukázka a ladění programu | 18.04. - lec09 |
10 | 17. | Přednáška 10 - ANSI C, C99, C11 a rozdíly mezi C a C++. Úvod do objektově orientovaného programování v C++ | 25.04. - lec10 |
11 | 18. | Pondělní rozvrh | |
12 | 19. | Přednáška 11 - Objektově orientované programování v C++: třídy, objekty, dědičnost a polymorfismus | 09.05. - lec11 |
13 | 20. | Přednáška 12 - Systémy pro správu verzí | 16.05. - lec12 |
14 | 21. | Přednáška 13 - | 23.05. - Test |
V přednáškách uvedené zdrojové kódy jsou přiloženy v příslušném .zip
archivu. Kromě vyzkoušení programů je též vřele doporučeno si složitější úlohy samostatně naprogramovat a přednáškové příklady využít pro inspiraci.
— Jan Faigl 2017/02/22 06:49
— Jan Faigl 2017/03/04 21:03 Aktualizace: Úprava sazby pro zachování kódovacího stylu. Doplnění příkladu sizeof.c
.
— Jan Faigl 2017/02/20 15:57
Dotazy z přednášky
Q: Co udělá realloc()
při zmenšení velikost nebo nastavení velikosti na 0?
Zmenší alokované místo a v případě 0, např. realloc(ptr, 0);
uvolní paměť a odpovídá tak volání free(ptr);
.
— Jan Faigl 2017/03/16 22:25
— Jan Faigl 2017/03/21 13:34
— Jan Faigl 2017/03/04 21:17 Aktualizace: Terminál raw režim.
— Jan Faigl 2017/04/04 13:42
— Jan Faigl 2017/03/04 21:17
Přednáška formou ukázek.
— Jan Faigl 2017/03/04 21:17
Dotazy z přednášky
Q: Proč při nastavení terminálu do raw režimu nedochází k tisku nového řádku na začátku?
Při nastavení raw řežimu cfmakeraw()
je vypnuto zpracování výstupních znaků (output postprocessing), které automaticky nahrazuje konec řádku za “návrat vozíku a nový řádek” (NL na CR-NL). Vyřešit lze buď explicitním uvedením znaku '\r', což ale není příliš kompatibilní nebo povolením output processing (OPOST) např.
static struct termios tio; tcgetattr(STDIN_FILENO, &tio); cfmakeraw(&tio); // nastavení raw režimu viz man termios tio.c_oflag |= OPOST; //zapnutí output processing tcsetattr(STDIN_FILENO, TCSANOW, &tio);
— Jan Faigl 2017/04/25 13:41
Dotazy / připomínky z přednášky
C: Při přepnutí terminálu do raw režimu příkazem stty raw
stále dochází k tisku stisknuté klávesy
Pokud tomu tak je (např. v Linuxu), je nutné ještě vypnout echo například stty -noecho
příkaz pro nastavení termínálu tak může být
stty raw -echo
a nastavit zpět pak lze např.
stty -raw echo
— Jan Faigl 2017/06/04 17:50
Původní podklady pro obecný úvod do verzovacích systémů a to jak centralizovaných tak distribuovaných, s příkladem použití systémů RCS, SVN a Git.
Přednášku povede Ing. Daniel Fišer a bude více zaměřena na použití verzovacího systému Git.
— Jan Faigl 2017/06/04 17:50