ZPrPr1 2020 - Prednáška 11
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 v úvode zopakúva tému preprocesora a makier zo Základov procedurálneho programovania 1 – vysvetľuje spracovanie zdrojového kódu preprocesorom pred kompiláciou, rozvíjanie makier ako textovú náhradu a dôležitosť zátvorkovania parametrov makier na demonštrácii funkcie tretej mocniny, kde nesprávne zátvorkovanie vedie k chybným výsledkom kvôli prednosti aritmetických operácií. Hlavnou témou je následne rekurzia, definovaná ako funkcia, ktorá volá samu seba s meniacimi sa parametrami, pričom musí obsahovať nerekurzívnu (bázovú) vetvu na ukončenie volaní. Na príklade rekurzívnej rozprávky o zaspávajúcich zvieratkách je znázornené, ako sa jednotlivé volania funkcie vnárajú do seba a zostávajú v zásobníku, kým sa nedosiahne báza, odkiaľ sa návratové hodnoty postupne vracajú späť až k prvému volaniu.
- - Preprocesor spracováva kód pred kompiláciou – odstraňuje komentáre, rozvíja makrá, rieši podmienený preklad.
- - Rozvinutie makra je čistá textová náhrada kódu, preto treba parametre makier dôsledne uzatvárať do zátvoriek.
- - Nezátvorkované parametre makier môžu spôsobiť nesprávny výsledok kvôli prioritám aritmetických operácií (demonštrované na príklade tretej mocniny).
- - Rekurzívna funkcia je funkcia, ktorá volá samu seba s inými parametrmi ako pri predchádzajúcom volaní.
- - Bez zmeny parametrov by rekurzia viedla k nekonečnému cykleniu volaní.
- - Každá rekurzívna funkcia musí obsahovať nerekurzívnu (bázovú) vetvu, ktorá ukončí ďalšie volania a vráti výsledok.
- - Vnorené volania rekurzívnej funkcie zostávajú v zásobníku a čakajú na návratovú hodnotu, ktorá sa postupne vracia späť k prvému volaniu (ilustrované rozprávkou o zaspávajúcich zvieratkách).
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky