Kezdőoldal » Számítástechnika » Programozás » (JS) Hogy érthetik ezt?

(JS) Hogy érthetik ezt?

Figyelt kérdés

[link]


oldalon azzal kezd a feladatok listájánál, hogy használj rekurziót a megoldáshoz. Magánúton tanulva eddig a w3schools-on codeacademy-n stb. még névleg sem találkoztam ezzel a kifejezéssel, utánaolvasva wikipedia-n sem teljesen világos, mire gondolt a költő. Felvilágosítanátok?


2016. júl. 10. 17:04
 1/7 anonim ***** válasza:
A rövid válasz az, hogy a rekurzívó olyan valami, ami önmagát hívja.
2016. júl. 10. 17:28
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Hát, pedig szerintem érthetően le van írva, példák is vannak, nem csak programozáshoz:

[link]

2016. júl. 10. 19:25
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Ez:

function valami() {

.. valami();

}

2016. júl. 10. 20:35
Hasznos számodra ez a válasz?
 4/7 2*Sü ***** válasza:
100%
Azt, hogy mi is pontosan a rekurzió, csak akkor értheted meg, ha előtte megérted, hogy mi is pontosan a rekurzió. ;-)
2016. júl. 11. 02:02
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

#4 Ez gyönyörű volt :)

A rekurzió lényege az, hogy egy alprogram (nevezzük függvénynek) a futása során meghívja saját magát rendszerint valamilyen feltétellel.


Pl JS-ben így nézne ki egy rekurzív függvény, ami a megadott számtól 0-ig visszaszámol, kiírva sorbana számokat.


function countdown(number)

{

console.log(number);

if(number > 0) countdown (number-1);

}


Ha mondjuk ezt meghívjuk 5-el, először kiírja az 5-öt, majd újra meghívja magát 4-el, kiírja a négyet, majd meghívja magát 3-al, és így tovább, amíg el nem ér 0-ig.


Namost ha azt akarjuk, hogy 0-tól ELŐREFELÉ számoljona megadott számig, elég ha megcseréljük a két sort.


function count(number)

{

if(number >0) count (number-1);

console.log(number);

}


Ekkor először egymásba ágyazva újra és újra meghívja magát, amíg elér 0-ig, majd elkezdi szépen kiírogatnia számokat. Namost itt meg kell érteni azt, hogy a rekurzív hívás nem olyan, hogy a függvény újraindul más értékkel, hanema függvényen belül meghívjuka függvény egy másik példányát, de az eredeti függvény futása ettől még nem fejeződik be, csak szünetel, amíg a rekurzívan meghívott példány futása véget nem ér. Ezért van az, hogy a második példában előrefelé fog számolni. A függvény az első sorában meghívja magát, így létrehoz egy új példányt, ami szintén létrehoz eg y új példányt, és ez így lépcsőzik egyre mélyebbre, amíg el nem érünk a megállási feltételhez. Ekkor a 'legalsó' példány, ahol a paraméter 0, szépen végig lefut, majd ha véget ért, akkor az eggyel felette levő folytatódik a függvényhívás utáni utasítással. Ha az is véget ért, akkor a felette levő példány is folytathatja a működését, és így tovább, míg a legfelső, 5-el paraméterezett példány is lefut, utolsóként.


Ez így capiche?

2016. júl. 11. 03:17
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Tisztában vagyok vele, hogy a rekurzió használatához nem kell, de felfogni egyszerűbb, hogy miről van szó igazából, ha tudod, mi az a call stack.
2016. júl. 11. 08:14
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
"Big Like" 5-ös válaszolónak, köszönöm.
2016. júl. 11. 09:57

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!