Prednáška 8 | 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 dvojrozmerným (a čiastočne trojrozmerným) poliam v jazyku C. Vysvetľuje sa ich deklarácia, inicializácia a spôsob uloženia v pamäti, kde je dvojrozmerné pole v skutočnosti pole polí uložené lineárne za sebou. Zdôrazňuje sa povinnosť uviesť veľkosť druhého rozmeru pri deklarácii funkcie a riziko chyby off-by-one, ktorá pri viacrozmerných poliach môže spôsobiť prístup k zmysluplným, no nesprávnym dátam. Na praktickom príklade sedemsegmentového displeja sa demonštruje deklarácia, indexovanie, vypisovanie prvkov cez vnorené cykly a odovzdávanie polí ako parametrov funkcií, pričom program sa postupne rozširuje o tretí rozmer na riadenie zobrazenia jednotlivých segmentov podľa zadanej číslice.
- - Dvojrozmerné pole je v jazyku C v skutočnosti pole, ktorého prvkami sú ďalšie polia.
- - V pamäti sú prvky dvojrozmerného poľa uložené lineárne za sebou, nie ako skutočná 2D štruktúra.
- - Pri deklarácii je veľkosť druhého (a ďalších) rozmeru povinná, lebo určuje veľkosť prvku poľa.
- - Prvý rozmer (veľkosť) možno pri inicializácii vynechať, prekladač ho dopočíta z počtu riadkov.
- - Chyba off-by-one pri viacrozmerných poliach môže spôsobiť prístup k zmysluplným dátam z iného riadku, nie len k náhodnej pamäti.
- - Pri odovzdávaní viacrozmerného poľa ako parametra funkcie musí byť rozmer stĺpcov deklarovaný pred samotným poľom.
- - Na príklade sedemsegmentového displeja sa ukazuje použitie 2D a 3D poľa na uchovanie a riadenie zobrazenia segmentov pre jednotlivé číslice.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky