Řešení rekurze + vysvětlení? Vyřešeno

Místo pro témata a příspěvky spadající MIMO počítačovou problematiku (tedy např. sport, zdraví, vtipy, škola...).

Moderátoři: Mods_junior, Mods_senior

Uživatelský avatar
Widlajz
Level 4
Level 4
Příspěvky: 1082
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

Řešení rekurze + vysvětlení?

Příspěvekod Widlajz » 21 lis 2013 19:20

Ahoj,

mám menší problém, neumím vyřešit rekurzi v příloze.

Byl by někdo tak ochotný, vypočítal jí + se mi snažil vysvětlit jak došel k výsledku? Děkuji

V úterý píšu zápočtový test, ale neumím si s tím poradit. Ještě jednou děkuji.
Přílohy
rekurze.jpg
AMD Ryzen 5 5600x
MSI B450-A PRO
16GB DDR4 3200MHz
XFX AMD RADEON RX 6700 XT
EVGA GQ 750

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7398
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Řešení rekurze + vysvětlení?

Příspěvekod faraon » 21 lis 2013 20:01

No fuj, to je husný struktogram. Tak právě proto mám radši klasické vývojové diagramy :lol:

Takže zavoláš proceduru Jonatán, a ta načte číslo ze vstupu do proměnné A. Pokud je to nula, vypíše jí na výstup, načte další číslo které také vypíše na výstup (vlastně ho vyhodí z fronty) a ukončí se, takže se program vrátí tam, odkud jsi Jonatána volal. To může být buď hlavní program nebo předchozí Jonatán!
Jenže pokud to nula není, tak se načte další číslo a testuje, jestli je menší než 6. Pokud ano, vypíše se na výstup, potom se zavolá další Jonatán, a až skončí, to číslo se znovu vypíše na výstup a Jonatán skončí. Nezapomeň že každý Jonatán má vlastní proměnnou A, takže ten předchozí si stále pamatuje to co tam bylo načtené.
Ale když to číslo není menší než 6, tak se úplně ignoruje, rovnou se zavolá další Jonatán, a po jeho skončení se načte a vypíše další číslo v pořadí, čili se také vyhodí z fronty bez nějakého testování. Potom tenhle Jonatán skončí.

Máš to řešit v nějakém konkrétním jazyce nebo obecně, a procházíš to jen ručně?
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Widlajz
Level 4
Level 4
Příspěvky: 1082
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

Re: Řešení rekurze + vysvětlení?

Příspěvekod Widlajz » 22 lis 2013 20:00

Ahoj,

díky za menší vysvětlení, cca. ten postup chápu. Řeším to obecně co prostě tenhle strukturogram vypíše na výstupu a procházím to pouze ručně.
Můžeš, to prosím tě zkusit vypočítat co vyjde na výstupu? Podle mého výpočtu, to nevychází, když se podívám do řešení.

Není mi zrovna jasné to, co se děje, když je A=0 tak jí vypíšu a následně místo tý nuly do "zásobníku" přepíšu dalším číslem? Tady ty rekurze s tím, PIŠ A na prvním místem a následném ČTI A mi dělají problém.
AMD Ryzen 5 5600x
MSI B450-A PRO
16GB DDR4 3200MHz
XFX AMD RADEON RX 6700 XT
EVGA GQ 750

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7398
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Řešení rekurze + vysvětlení?

Příspěvekod faraon » 22 lis 2013 22:32

Když načteš do A další hodnotu, tak se prostě ta předchozí ztratí. Ale pouze ta lokální, v každém zavolání Jonatána, a ty předchozí zůstanou beze změny. Udělej si tabulku se sloupcem pro každé vnoření, a zapisuj si stav:

Kód: Vybrat vše

vstup| A1 | A2 | A3 | A4 | A5 | A6 |
  6  |  6 |    |    |    |    |    | =0 ne
  1  |  1 |    |    |    |    |    | <6 ano
  5  |    |  5 |    |    |    |    | =0 ne
  3  |    |  3 |    |    |    |    | <6 ano
  7  |    |    |  7 |    |    |    | =0 ne
  8  |    |    |  8 |    |    |    | <6 ne
  8  |    |    |    |  8 |    |    |

A tak dále, těch vnoření je při téhle sekvenci šest a poslední čtyři čísla na vstupu zůstanou nevyužita. Mohl bys tam také přidat ještě sloupec pro výstup, abys poznal ve kterém okamžiku se obsah A vypíše, první polovina výstupu bude vypadat takhle:
1 3 0 2 0 7 . . . . .

Možná by stálo za to překreslit ten sktruktogram do vývojového diagramu, třeba by se ti v něm lépe orientovalo. On už ten název "flowchart" trochu napovídá o čem v tom jde ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
Widlajz
Level 4
Level 4
Příspěvky: 1082
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

Re: Řešení rekurze + vysvětlení?  Vyřešeno

Příspěvekod Widlajz » 22 lis 2013 22:42

Díky, vypadá to, že mi to kamarád vysvětlil dostatečně a nemám problém to vypočítat.

Díky ještě jednou.
AMD Ryzen 5 5600x
MSI B450-A PRO
16GB DDR4 3200MHz
XFX AMD RADEON RX 6700 XT
EVGA GQ 750


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Vše ostatní (Off topic)”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů