Mit jelent a ciklus? Szerinted mit jelent a végtelen ciklus?
Perpetuum Mobile
A szó örökmozgót jelent. Vajon létezhet-e ilyen? Készítsünk mi is egy örökmozgó teknőcöt!
Ez legyen egy óra, aminek mutatója (másodperc mutatója) körbe-körbe jár.
eljárás óra
kör 200
előre 100 várj 1000
tsz! 15 hátra 100
tsz! 0 jobbra 6
óra
vége
Láthatsz egy érdekességet: az eljárás nevünk szerepel az utasítássorban is. Ezt az önmagát
hívó eljárást rekurzív eljárásnak nevezzük. Ebben a formában ez az óra eljárásunk végtelen
ciklushoz vezet. Ebből a „Mindent megállít” gombbal tudsz kilépni.
A rekurzív eljárás algoritmusa:
eljárás eljárásnév
utasítások
eljárásnév
vége
A paraméteres rekurzív eljárás algoritmusa:
eljárás eljárásnév :paraméter(ek)
utasítások
eljárásnév :paraméter(ek)
vége
Készítsünk sokszögeket rekurzív eljárással, és a várj utasítással lassítsuk le!
eljárás négyzet
e 100 j 90 várj 100
négyzet
vége
Most annyiban változtassuk meg az eljárásunkat, hogy, minden lépés után növeljük
meg az oldal hosszát! Legyen paraméteres az eljárásunk! Használjuk a lenyomat parancsot is!
eljárás négyzet :oldal
e :oldal j 90 várj 100
lenyomat
négyzet :oldal + 10

Sokszor találkoztál már az Imagine Logo teknőcével. Tudsz új szavakat tanítani neki. Már ismered a véletlen fogalmát, és tudod, hogyan használhatod a tetszőleges és a véletlenszám szavakat.
Ha le akarod állítani, kattints a Mindent megállít gombra, vagy írd be a parancssorba, hogy stopmind.
Ezt a fajta rekurziót hívják végtelen rekurziónak, mivel az eljárás mindig újra és újra meghívja önmagát, és semmilyen megállási (kilépési) feltételt nem adtál neki, ezért önmagától nem fog leállni.

Olvasd el Szabó Lőrinc Dsuang Dszi álma című versét, mely gyönyörű példa az egymásra hivatkozásra:
Szabó Lőrinc – Dsuang Dszi álma
Kétezer évvel ezelőtt Dsuang Dszi,
a mester, egy lepkére mutatott.
– Álmomban – mondta – ez a lepke voltam
és most egy kicsit zavarban vagyok.
– Lepke – mesélte, – igen, lepke voltam,
s a lepke vigan táncolt a napon,
és nem is sejtette, hogy ő Dsuang Dszi…
És felébredtem… És most nem tudom,
most nem tudom – folytatta eltünődve -,
mi az igazság, melyik lehetek:
hogy Dsuang Dszi álmodta-e a lepkét
vagy a lepke álmodik engemet? –
Mivel ez egy négyzetes spirál, induljunk abból ki, hogyan rajzolnál négyzetet: tudod, hogy megy valamennyit előre a teknőc, aztán jobbra fordul 90°-ot, azután azonban nem ugyanannyit megy előre, hanem egy kicsit többet, és minden fordulás után egy kicsit többet:
Azaz az eljárás:
eljárás spirál :h
előre :h
jobbra 90
spirál :h + 5
vége
Ha azt akarod, hogy leálljon, az eljárás elejére kell írnod egy feltételt, ami ha teljesül, leállítja az eljárást. Ez a feltétel lehet például egy adott méret elérése, azaz ha :h egy bizonyos méretnél nagyobb, vagy egy adott szint elérése.
Próbáld ki az előző eljárásodat úgy, hogy egy kicsivel nagyobb, illetve kisebb szögeket adsz meg az elfordulásnál, mint 90°! Ha valóban kis különbséget használsz, olyan, mintha jobbra, illetve balra kicsavartad volna a négyzetes spirálodat:
Próbáld ki az előző eljárásodat úgy, hogy egy kicsivel nagyobb, illetve kisebb szögeket adsz meg az elfordulásnál, mint 90°! Ha valóban kis különbséget használsz, olyan, mintha jobbra, illetve balra kicsavartad volna a négyzetes spirálodat:
Vajon melyiknél mennyire változtattuk a fordulás szögét? Hogy látványosabb legyen az ábránk, az első oldalhosszt és a lépéseknél az oldalak növelésének értékét is kisebbre vettük.