Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




02_rekurze

PDF
Stáhnout kompletní materiál zdarma (851.81 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

řešení se objevuje původní prvek

• podmínka ukončení: pro n = 0; 0! = 1
• algoritmus rekurzivní:

vstup x
pokud (x == 0)

výsledek = 1

jinak

výsledek = x * rekurze(x-1) 

Faktoriál - Ukázka hierarchie 

volání a parametrů na zásobníku

• hodnota x -> levé tři sloupce (stav zásobníku)
• hodnota nejvíce vpravo -> hodnota x v aktuální funkci
• počáteční hodnota 2 

volající funkce

volání s parametrem 2

2

první zanoření

volání s parametrem 1

2

1

druhé zanoření

volání s parametrem 0

2

1

0

třetí zanoření

return 1

2

1

druhé zanoření

return 1 . 1 = 1

2

první zanoření

return 1 . 2 = 2

volající funkce

obdržený výsledek = 2

Faktoriál

• Problém při výpočtu – přetečení

• Jak zjistit přetečení?
• Jak vypočítat maximální číslo, jehož faktoriál lze 

vypočítat pro daný datový typ?

Tisk řetězce - aneb cesta tam a 

zase zpátky

• Vytiskněte ho pomocí rekurze tak jak je
• Vytiskněte ho pomocí rekurze pozpátku
• Neznáme délku řetězce 

Tisk řetězce - po řadě

vstupy: řetězec, aktuální pozice=0
Pokud jsi na konci řetězce, vrať se

na předchozí úroveň

Vytiskni aktuální znak
Zavolej tento postup se stejným řetězcem,

pozici posuň na další hodnotu v poli

Tisk řetězce - pozpátku

vstupy: řetězec, aktuální pozice=0
Pokud jsi na konci řetězce, vrať se

na předchozí úroveň

Zavolej tento postup se stejným řetězcem,

pozici posuň na další hodnotu v poli

Vytiskni aktuální znak

Robot Karel

• Definice úlohy:

• Dojděte s figurkou na šachovnici do poloviny vzdálenosti od 

okraje pole/zdi

• Robot jde doprava
• Úplně vpravo je zeď

• Algoritmus:
Pokud je před tebou zeď, vrať se do předchozí

úrovně (podmínka konečnosti)

Udělej dva kroky, pokud nenarazíš na zeď

Zavolej tento algoritmus (další úroveň)

Vrať se o jeden krok

Robot Karel

Robot1

Robot Karel

• Nutno dodefinovat/rozhodnout co se stane, narazí-

li na okraj po prvním kroku. Nevrátí se v tom 
případě přesně do poloviny.

Témata, do kterých materiál patří