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.
Řešení rekurze + vysvětlení? Vyřešeno
Řešení rekurze + vysvětlení?
AMD Ryzen 5 5600x
MSI B450-A PRO
16GB DDR4 3200MHz
XFX AMD RADEON RX 6700 XT
EVGA GQ 750
MSI B450-A PRO
16GB DDR4 3200MHz
XFX AMD RADEON RX 6700 XT
EVGA GQ 750
Re: Řešení rekurze + vysvětlení?
No fuj, to je husný struktogram. Tak právě proto mám radši klasické vývojové diagramy
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ě?

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)
(pravil K. H. Borovský o cenzuře internetu)
Re: Řešení rekurze + vysvětlení?
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.
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
MSI B450-A PRO
16GB DDR4 3200MHz
XFX AMD RADEON RX 6700 XT
EVGA GQ 750
Re: Řešení rekurze + vysvětlení?
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:
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
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)
(pravil K. H. Borovský o cenzuře internetu)
Re: Řešení rekurze + vysvětlení? Vyřešeno
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.
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
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
-
-
Addon nebo jiné řešení pro odstranění „Popularních vyhledavání“ na mobilních zařízeních Příloha(y)
od Daminekkkk » 23 čer 2025 18:22 » v Vše ostatní (sw) - 0
- 846
-
od Daminekkkk
Zobrazit poslední příspěvek
23 čer 2025 18:22
-
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 2 hosti