Prednáška 6 | Základy algoritmizácie a programovania (2022/2023)
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 nadväzuje na predchádzajúce polia a venuje sa poliam znakov a reťazcom v jazyku C, demonštrovaným na príklade Cézarovej šifry. Vysvetľuje sa princíp posunu znakov v ABC pomocou ASCII kódov, výpočet poradia písmena odpočítaním kódu znaku 'A' a použitie operácie modulo 26 na cyklické prerotovanie na začiatok abecedy pri prekročení 'Z'. Ďalej sa preberá rozdiel medzi definovaním polí znakov cez výpočet jednotlivých znakov a jednoduchším zápisom reťazca v úvodzovkách, pričom sa zdôrazňuje význam ukončovacieho znaku (terminátora, '\0', NUL) s ASCII kódom 0. Vysvetľuje sa rozdiel medzi reťazcom definovaným ako pole (char text[]) a ako ukazovateľ (char *text), pričom druhý spôsob ukladá reťazec do read-only pamäte, čo pri pokuse o zmenu spôsobí chybu prekladu alebo segmentation fault. Na záver sa spomína knižnica string.h, ktorá poskytuje ďalšie funkcie na prácu s reťazcami.
- - Cézarová šifra ako príklad práce s poľom znakov – posun každého písmena o zadaný počet pozícií v abecede
- - Výpočet poradia písmena v ABC odčítaním ASCII kódu znaku 'A' (napr. 65)
- - Operácia modulo 26 zabezpečuje cyklické prerotovanie na začiatok abecedy pri prekročení 'Z'
- - Explicitná konverzia (cast) výsledného čísla späť na typ char pre výpis zašifrovaného znaku
- - Reťazec je pole znakov ukončené špeciálnym znakom terminátora '\0' (NUL, ASCII kód 0)
- - Rozdiel medzi definíciou reťazca ako poľa (char[]) a ako ukazovateľa (char*) – druhý je uložený v read-only pamäti a nedá sa meniť
- - Pokus o zmenu reťazca v read-only pamäti spôsobí chybu prekladača alebo segmentation fault pri behu programu
- - Knižnica string.h poskytuje funkcie na jednoduchšiu prácu s reťazcami
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky