ZPrPr1 2020 - Prednáška 11

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 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.