programovanie 32-39 Flashcards
čo zabezpečuje funkcia ?
modularitu - rozdelenie programu do funkcií na moduly, každý modul má svoju úlohu
opakovateľnosť - funkcie je možné opakovane použiť
zrozumiteľnosť - prehľadnosť kódu
abstrakciu - zjednodušené vnímanie chodu programu
čo vykonávajú funkcie ?
funkcie vykonávajú podúlohy, ktoré vedú k riešeniu hlavného, komplexnejšieho problému
pomocou akého keywordu definujeme funkciu a aký je syntax?
definujeme ich pomocou keywordu “def” a názov funckie
syntax:
def názov_funckie(parametre):
čo je to parameter vo funkcí ?
parametrami nazývame premenné v zátvorkách pri definícií funkcie
ako nazývame hodnoty ktoré do funkcie vstupujú ?
konkrétne hodnoty, ktoré do
nich vstupujú nazývame argumenty
aký je postup vykonávania programu pri funkciách ?
program beží, kým nenarazí na funkciu
v momentne, kedy na ňu narazí, uloží si návratovú adresu, aby sa sem po vykonaní funkcie mohol vrátiť
vytvoria sa lokálne premenné podľa parametrov a obsahu samotnej funkcie
riadenie programu sa prenesie do funkcie (podprogramu)
vykoná sa telo funkcie (príkazy)
lokálne premenné zaniknú
riadenie programu sa vráti pomocou uloženej návratovej adresy na miesto, kde sa pôvodne nachádzal
definuj globálnu premennú…
globálne premenné žijú vrámci globálneho rámca, čiže počas celého behu programu
dobrým zvykom je deklarovať ich na prvé riadky programu, nad funkcie pre prehľadnosť
ako vieme premennú lokálneho rámca deklarovať aby bola globálna..
lokálnu premennú vieme deklarovať aby bola globálna pomocou keywordu “global” tým sa z lokálnej premennej stane globálna premenná
definuj lokálnu premennú…
lokálne premenné žijú iba vrámci svojho lokálneho rámca, co môže buť napríklad funkcia, prípadne iterátor v cykle
-po vykonaní funkcie, ukončení cyklu táto lokálna premenná zaniká
vysvetli menné priestory
menné priestory (lokálny -> globálny -> build-in)
lokálny:
-vzniká tak ako aj lokálny rámec pri spustení funckie, cyklu
-obsahuje názvy premenných z týchto konštrukcií (pri cykle len iterátor)
globálny:
-existuje po celú dobu trvania programu
-obsahuje názvy premenných mimo funkcií a iterátorov cyklov
build-in:
-obsahuje názvy funkcií, ktoré Python poskytuje automaticky
ako fungujú funkcie s návratovou hodnotou ?
môžme definovať funkcie, ktoré vracajú hodnoty pomocou kľúového slova return - funkcia môže vrátiť jeden alebo viacero výsledkov, ktoré môžeme potom použiť ďalej
ako definujeme funkciu ktorá už má defaultne nastavený parameter ?
môžme definovať funkcie, ktoré majú predvolenú/náhradnú hodnotu parametrov – v prípade, že pri volaní funkcie nie je daný parameter zadaný, použuje sa táto predvolená hodnota
vysvetli pojem rekurzie, aj v programovaní…
objekt je rekurzívny, ak sa čiastočne skladá alebo je definovaný pomocou seba samého
v programovaní to je volanie podprogramu sebou samým
čo sa deje volaním rekurzívnej funkcie ?
každým volaním rekurzívnej funkcie sa vytvorí kópia parametrov a premenných, zapamätá sa návratová adresa
rekurzia sa može opakovať kým… ?
rekuzia sa môže opakovať kým nepretečie systémový zásobník – stack overflow