Prednáška č. 8 | Základy algoritmizácie a programovania (2017/2018)

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 nadväzuje na tému polí a zameriava sa na reťazce ako polia znakov. Na príklade Cézarovej šifry je vysvetlený princíp posunu písmen v abecede pomocou aritmetiky so znakmi (odčítanie ASCII hodnoty znaku A na získanie poradového čísla, sčítanie posunu a operácia modulo 26 na ošetrenie prechodu cez koniec abecedy). Ukázaná je aj implementácia v cykle for, kde je pole znakov zadané ručne s pevne danou dĺžkou, čo je označené ako obmedzenie riešenia. Následne je vysvetlený koncept reťazca ukončeného špeciálnym znakom '\0' (terminátorom), ktorý umožňuje pracovať s reťazcom ako s celkom a odlišuje skutočnú dĺžku reťazca od veľkosti poľa, v ktorom je uložený. Na záver sú ukázané rôzne spôsoby definovania reťazcov v jazyku C, vrátane definovania poľa s väčšou kapacitou, než je aktuálna dĺžka textu.

  • - Reťazce sú polia znakov, platia pre ne rovnaké princípy ako pre polia s indexovaním od 0.
  • - Cézarova šifra posúva každé písmeno abecedy o zadaný počet krokov.
  • - Šifrovanie sa počíta ako (znak - 'A' + posun) modulo 26, výsledok sa spätne prevedie na znak pripočítaním 'A'.
  • - Operácia modulo 26 rieši prechod posunu cez koniec abecedy (napr. Z sa posunie na začiatok).
  • - Pôvodné riešenie je obmedzené pevne definovaným textom a pevnou veľkosťou poľa v cykle for.
  • - Reťazec je ukončený špeciálnym znakom '\0' (terminátor), ktorý oddeľuje dĺžku reťazca od veľkosti poľa.
  • - Reťazce možno definovať viacerými spôsobmi – znak po znaku, pomocou úvodzoviek alebo s väčšou rezervovanou veľkosťou poľa.

Zhrnutie pripravené s pomocou AI z prepisu videa.