Ismétlődő programok¶
Nézd meg a következő példát! Magyarázd el Karelnek, hogy mit kell tennie!
3. példa¶
Öt labda van egy kupacban. Karelnek össze kell gyűjtenie mind az öt labdát, majd a (6, 1) mezőre kell lépnie.
Segítség: Karelnek négy lépést kell tennie, majd ötször fel kell vennie egy-egy labdát, és végül még egy lépést kell tennie, hogy elérje a megadott mezőt.
Képzeld el, hogy 1000 labda van egy kupacban! Hány blokkra és mennyi időre lenne szükséged, hogy összeállítsd a programot?
Ebben az esetben sokkal célszerűbb ciklust alkalmazni a programban.
Ha egy utasítást (vagy utasítások csoportját) többször kell végrehajtani egy adott programban, akkor ehhez ciklust használunk.
Csináld meg újra az előző példát, de ezúttal ciklus alkalmazásával! Az utasítások áttekinthetősége érdekében csoportokra osztottuk őket. Kattints a Ciklusok
csoportra!
Húzd az első blokkot a munkaterületre! Próbáld meg magad összeállítani a programot! Ha nem sikerül, nézd meg az általunk javasolt megoldást!
Pakolsz be az iskolatáskádba… Mindent, amit be kell tenni a táskába, kiraksz az íróasztalra. Majd hozzáfogsz a pakoláshoz: füzet, radír, ceruza, füzet, könyv, színes ceruza, szótár…
Észrevettél-e valami szabályszerűséget a fenti tevékenységekben? Ismétlődnek bizonyos lépések úgy, hogy akár ciklusba is lehetne őket helyezni?
Itt van egy másik helyzet: bepakolsz egy ceruzát, egy ceruzát, egy ceruzát. Aztán egy füzetet, egy füzetet, egy füzetet, egy füzetet, egy füzetet. Majd egy könyvet, egy könyvet, egy könyvet, egy könyvet.
Észrevettél most valami szabályszerű ismétlődést? Mely lépéseket tennéd ciklusba, és hogyan?
Érthetőbb és tömörebb lenne az az utasítás, hogy „Tégy a hátizsákba három ceruzát, öt füzetet, majd négy könyvet!”?
4. példa¶
Ezek a labdák szétszóródtak. Jól gondold át, milyen lépéseket kell Karelnek megtennie, és hányszor! Ha észreveszed, hogy bizonyos lépések ismétlődnek, tedd őket ciklusba!
5. példa¶
Ahhoz, hogy sikeresen befejezze a feladatot, Karelnek össze kell gyűjtenie öt labdát, amelyek ezen a szokatlan úton találhatók. Használj ciklusokat a programban, és segíts neki!
Segítség: Írd le az összes utasítást, amit Karelnek kell végrehajtania, és figyeld meg, hogy melyek ismétlődnek! Hányszor ismétlődnek?
Ebben a megoldásban két különböző ciklust használhatsz - egyet a fal melletti mozgáshoz és egyet a labdák összegyűjtéséhez.
Emlékezz vissza arra is, hogy már említettük a feltételes ciklusokat! Mikor használod ezeket?
Térjünk vissza az iskolatáska bepakolásának példájára.
Tegyük fel, hogy mindent be kell pakolnod, ami az asztalon van. Nem tudod előre, hogy pontosan hány dolog vár bepakolásra. Honnan fogod tudni, hogy meddig kell ezt csinálnod, hány alkalommal kell megismételned?
A választ talán megfogalmazhatjuk így is: „Amíg az asztalon vannak dolgok, addig folytasd a táskába való bepakolást!“
Amikor nem tudható előre, hány alkalommal kell megismételni egy utasítást (vagy utasításcsoportot), akkor a programban feltételes ciklust használunk.
6. példa¶
A labdák egy kupacban vannak, amelyeket majd Karelnek a lyukba kell helyeznie. Karel ezúttal nem tudja előre, hány labdát kell összegyűjtenie. Ugyanis minden egyes alkalommal, amikor elindítod a programot, más-más számú labda van egy kupacban.
Nézd meg Peti megoldását!
Alkalmazható-e az így megírt program a kupacban lévő golyók számától függetlenül?