Prednáška 7 | Základy algoritmizácie a programovania (2020/2021)
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa venuje práci s reťazcami v jazyku C na príklade jednoduchej Caesarovej šifry. Vysvetľuje sa princíp posunu znakov v ABC pomocou ASCII kódov a operácie modulo na zabezpečenie rotácie na začiatok abecedy. Následne sa rozoberá reprezentácia reťazcov ako polí znakov ukončených terminátorom '\0' a rozdiely medzi rôznymi spôsobmi inicializácie reťazcov vrátane read-only pamäte. Na záver sa kód postupne optimalizuje – zavedenie funkcie strlen z knižnice string.h, eliminácia opakovaného výpočtu dĺžky reťazca v cykle a použitie bezznamienkového typu size_t pre indexovanie.
- - Šifrovanie posunom znaku pomocou ASCII kódu a odčítania znaku 'A' na získanie poradia v abecede
- - Operátor modulo (%) zabezpečuje rotáciu na začiatok abecedy pri prekročení jej konca
- - Reťazce v C sú polia znakov ukončené terminátorom '\0' (ASCII hodnota 0)
- - Rozdiely v inicializácii reťazcov: presná veľkosť, väčšia rezerva, alebo priradenie reťazcového literálu do read-only pamäte
- - Zápis reťazca do read-only pamäte spôsobí pri pokuse o zmenu chybu Segmentation Fault
- - Funkcia strlen() z knižnice string.h zisťuje dĺžku reťazca bez terminátora
- - Optimalizácia cyklu: výpočet dĺžky reťazca len raz pred cyklom namiesto opakovaného volania v podmienke, použitie typu size_t
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky