Prednáška 7 | Základy algoritmizácie a programovania (2020/2021)

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

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.