Beszéljünk ma a ciklusokról. Találjuk ki, mi az a ciklus, és hogyan tanítsuk meg Robotunkat ciklikus algoritmusok végrehajtására.

Így, mi az a ciklus? Képzeljük el, hogy testnevelés órán vagyunk, és a feladat előtt állunk csinálj 7 guggolást. Ez a feladat formalizálható lineáris algoritmusként, és akkor valahogy így fog kinézni:

csinálj egy guggolást

csinálj egy guggolást

csinálj egy guggolást

csinálj egy guggolást

csinálj egy guggolást

csinálj egy guggolást

csinálj egy guggolást

Vagyis 7-szer megismételtük a guggolás parancsát. Van értelme 7 egyforma parancsot írni? Talán egyszerűbb parancsot adni. csinálj 7 guggolást? Természetesen egyszerűbb és pontosabb. Ez a ciklus. Ön is emlékszik példákra az élet ciklusaira - jó néhány van belőlük.

És így lineáris algoritmus, ahol ugyanazok a parancsok ismétlődnek, kiadhatjuk ciklikus algoritmus formájában- mint az:

ismételje meg 7-szer

csinálj egy guggolást

ciklus vége

Tehát az általunk feltalált nyelven megterveztük a ciklust. A Robot előadó képes ciklusok rögzítésére is. Ráadásul, a ciklusok különbözőek.. Az imént mérlegelt opciót ún hurok számlálóval vagy hurok paraméterrel.

A ciklusok típusai.

Kerékpár számlálóval.

Hurok számlálóval akkor használható, ha előre ismert, hogy hány ismétlést kell elvégezni. A fenti, guggolásokkal kapcsolatos példában pontosan ez a helyzet.

Ahhoz, hogy egy végrehajtó ciklust írhassunk számlálóval, ismernünk kell a szintaxisát. És ő ilyen:

nc<ismétlések száma> alkalommal

<команда 1>

<команда 2>

<команда n>

Itt meg kell adnunk az ismétlések számát (számát) és az ismétlődő parancsokat. A ciklusban ismétlődő parancsokat hívjuk huroktest.

Nézzük ezt egy példával.

Kezdetben a Robot a bal felső cellában volt.

Először lineárisan oldjuk meg a feladatot. Ebben az esetben átfestjük az aktuális cellát, és 1 cellát jobbra mozgatunk, és a program így fog kinézni:
robotot használni
alg
korai

festeni át

jobb

festeni át

jobb

festeni át

jobb

festeni át

jobb

festeni át

jobb

festeni át

jobb

festeni át

jobb

Amint látja, az átfestés és jobbra festés parancsai 7-szer ismétlődnek. Most írjuk át a programot egy ciklus segítségével. Egyébként, ha ciklust szeretne beilleszteni a programjába, használhatja a menüt Beszúrás tárgy kiválasztása nc-time-kc vagy nyomja meg az egyik billentyűparancsot Esc, P(orosz Р betű) ill Esc, H(latin H betű). És a gombokat egymás után kell megnyomni- először az Esc-t engedd el és csak utána a P vagy a H.

Szóval itt a miénk ciklus programígy fog kinézni:

robotot használni

nc 7 alkalommal

festeni át

jobb

Ha lefuttatjuk, látni fogjuk, hogy az eredmény ugyanaz lesz - 7 kitöltött cella. A program azonban rövidebb és algoritmikus szempontból sokkal intelligensebb lett!

Bemelegítésként és konszolidációként azt javaslom, hogy írjunk önállóan egy programot a Robot számára, amely egy 7 cellás oldalú négyzetet rajzol. Természetesen ciklus használatával. Kommentben várom a megoldást.

Feltételes hurok.

Ha a GIA 19. feladatát az informatikában robottal oldjuk meg, nem fog működni a számlálós hurok használata. Mivel ott a mező általában végtelen, és a falaknak nincs meghatározott hosszúsága. Ezért nem tudjuk számlálóval meghatározni egy hurok ismétlődéseinek számát. De nem számít – segíteni fog nekünk hurok feltétellel.

Térjünk vissza a testneveléshez és változtassunk a feladaton. Hiszen lehet, hogy valaki nem csinál 7 guggolást, míg a másik 27-et tud. Ezt figyelembe lehet venni a ciklus kialakításánál? Biztosan. Csak most nem számlálót (ismétlések számát), hanem feltételt fogunk használni. Például, mielőtt elfáradna, végezzen guggolást. Ebben az esetben az ember nem meghatározott számú guggolást végez, hanem addig guggol, amíg el nem fárad. És a ciklusunk az absztrakt nyelven így fog kinézni:

Viszlát nem fáradt

csinálj egy guggolást

ciklus vége

A szavak esetünkben nem fáradtak el – ez egy feltétel. Ha igaz, a ciklus végrehajtásra kerül. Ha hamis (fáradt), a ciklus törzse nem kerül végrehajtásra. A robot előadónak több feltétele van

felső laza

feneke laza

szabadon hagyták

jogos ingyen

felső fal

alsó fal

bal fal

jobb fal

De a GIA 19. feladatának állapotában csak az első 4 van feltüntetve, ezért csak azokat fogjuk használni.

Most oldjuk meg a következő feladatot a Robot számára – húzzunk függőleges vonal a mező bal oldalától a jobb széléig hurkot használok feltétellel. Kezdetben a Robot a bal felső sarokban van.

Először határozzuk meg verbális algoritmus- vagyis szavakkal leírjuk, mit kell tennie a Robotnak. Ez az algoritmus valahogy így fog hangzani:

« A jobb oldalon szabadon tegyen egy lépést jobbra, és fesse le a cellát »

Ennek eredményeként a Robot átfut az összes cellán jobbra, és addig fest rajtuk, amíg a fal a jobb oldalon nem lesz.

Robot programunk forráskódja a következő lesz:

robotot használni

nc míg jobb szabad

jobb

festeni át

A program végrehajtása eredményeként a következő képet fogjuk látni:

Előadó robot. Segítő algoritmusok(2 óra)

Cél: ismertesse a fő- és segédalgoritmus fogalmát; ismertesse a segédalgoritmus használatának szabályait; elemezze az algoritmusok példáit egy segédprogram segítségével. Gyakorlati készségek fejlesztése az algoritmusok szekvenciális finomítás módszerével történő felépítésében.

Tanterv

1.Új fogalmak bevezetése (fő- és segédalgoritmus, hívás) és új fogalmak magyarázata.

2. Feladatmegoldási példák elemzése segédalgoritmus segítségével.

3. Praktikus munka

Egyes feladatok megoldása során célszerű azokat kisebb részfeladatokra bontani, amelyek mindegyike önálló algoritmusként tervezhető. Ebben az esetben először az úgynevezett főalgoritmus kerül összeállításra, amelyben segédalgoritmusok hívásait használják fel a részfeladatok megoldására, amelyeket később hozzáadnak. Ezt a fajta megoldást ún szekvenciális finomítási módszer. Lehetővé teszi a programozók egy csoportjának, hogy dolgozzon egy projekten, miközben mindegyik megoldja a saját részfeladatát.

A probléma megoldása során minden segédalgoritmus szükség esetén kisebbre bontható. segédalgoritmusok.

Meghívjuk a segédalgoritmus végrehajtására szolgáló parancsot kihívás és a fő algoritmus törzsébe van írva.

Ugyanaz az algoritmus tekinthető fő- és segédalgoritmusnak más algoritmusokhoz képest. BAN BEN algoritmikus nyelv először a fő algoritmust írjuk, és a segédalgoritmusokat egy sorba írjuk alább.

1. feladat:

A robot a mező bal felső sarkában található. Nincsenek falak vagy árnyékolt cellák. Állítson össze egy segédalgoritmust, négy keresztet rajzolva egy vízszintes vonalra. A Robot végső pozíciója tetszőleges lehet.

Megoldás

Elemzés a táblán:

2. feladat. A robot a mező bal felső sarkában található. Nincsenek falak vagy árnyékolt cellák. Írjon egy algoritmust, amely egy 8 x 8-as négyzetet fest sakktábla mintára A Robot végső pozíciója tetszőleges lehet!

Gyakorlati munka PC-n "Problémamegoldás segédalgoritmusokkal"

1. feladat . A robot a mező bal alsó sarkában van. Nincsenek falak vagy árnyékolt cellák. Írjon egy algoritmust, amely 6 azonos hosszúságú függőleges csíkot fest 6 cellába! A Robot végső pozíciója tetszőleges lehet.

2. feladat . Segédeszközzel írjon egy algoritmust az 1212-es számot alkotó cellák felfestésére.

Házi feladat : Találjon ki egy algoritmust, amely a következő képet rajzolja: Alkalmazzon két segédalgoritmust a probléma megoldásához.

Módszertani útmutató informatika szakos tanárok számára. Evgrafova Olga Vladimirovna, 8. számú gimnázium Kolomna, 2013 A „Számítástechnika és IKT” ​​tantárgy tanulási folyamata során a hallgatók nemcsak az információs kultúrát (a számítógéppel való kompetens kommunikáció kultúráját, a papírmunkát, az elektronikus kommunikációt) sajátítják el, hanem a programozás alapjait is elsajátítják. Az egyik legsikeresebb hazai fejlesztés ezen a területen a Kumir programozási rendszer. Ebben a hallgatók gyakorlati ismereteket szerezhetnek egy algoritmus létrehozásában és hibakeresésében, ha a Robot és a Draftsman előadókkal dolgoznak együtt. Ennek a rendszernek az előnyei közé tartozik a parancsok orosz nyelvű írásának lehetősége az iskolai algoritmikus nyelven és az algoritmus végrehajtásának eredményének láthatósága. A KuMir rendszert az igények alapján alakítjuk ki orosz rendszer oktatás. Jellemzői:      szabadon terjeszthető; többplatformos; nulla erőforrásigény; az Orosz Tudományos Akadémia támogatásával; a fejlesztők között számos informatikai tankönyv és kézikönyv szerzője van;  A Kumir ingyenes programhéja megtalálható a http://www.niisi.ru/kumir/ címen. Sajnos az új számítástechnikai tankönyvek szerzői nem fordítanak kellő figyelmet, vagy általában megkerülik ezeket az előadókat. Ugyanakkor a GIA fejlesztői és -1-

p. 2

Az USE a vizsgadolgozatok feladatsoraiban szereplő előadók adatainak felhasználásával végzett feladatokat tartalmaz. A témát a 9. osztályban az "Algoritmizálás és programozás" szekcióban tanulják. A téma tanulmányozására 9 óra áll rendelkezésre. A tanulóknak tudniuk kell: mi az előadóművész; SKI Robot, szerdai előadó Robot; mi az algoritmus; melyek az algoritmus főbb tulajdonságai; algoritmusok írásának módjai: folyamatábrák, oktatási algoritmikus nyelv; alapvető algoritmikus konstrukciók: követés, elágazás, hurok; segédalgoritmusok hozzárendelése. A tanulóknak képesnek kell lenniük: megérteni az algoritmusok leírását oktatási algoritmikus nyelven; algoritmus nyomkövetést hajt végre egy ismert előadó számára; lineáris, elágazó és ciklikus vezérlési algoritmusok összeállítása a Robot végrehajtó számára; részfeladatok kiosztása; segédalgoritmusok meghatározása és használata. Tematikus óraterv: szám p / p 1. 2. 3. 4. 5. Teo-órák száma riya Performer Robot. Végrehajtó parancsrendszer. Összetétel1 0.5 Lineáris algoritmusok. Ciklikus algoritmusok. 3 1 Gyakorlati munka №1. Ciklikus algoritmusok összeállítása és hibakeresése. Az algoritmus elágazása és szekvenciális finomítása. 2 1 Gyakorlati munka №2. Ciklikus és elágazó algoritmusok összeállítása és hibakeresése. Segédalgoritmusok és szubrutinok. 2 0,5 Pl. rabszolga. 3. sz. "A segédalgoritmusok használata". Teszt. „Algoritmus készítése az előadó környezetében” Óra témája Gyakorlat 0,5 2 1 1,5 1 Anyagok az „Előadói robot képzése” témában leckékhez: -2-

p. 3

1. lecke Végrehajtó parancsrendszer. A robot a program végrehajtása során egy téglalap alakú kockás mezőben mozog, melynek cellái között falak helyezkedhetnek el. A mező az eszköztáron található "Robot Window" gombbal hívható elő a képernyőn. Robot kód mező. A robot képes parancsokat-parancsokat és parancsokat-kérdéseket végrehajtani. Parancsok-parancsok: jobbra, balra, fel, le, fessük át. Ha fal van az úton, a parancs nem hajtható végre. A robot közvetlen irányításához használja távoli. A távirányító gombjait megnyomva az illető kiadja a megfelelő parancsokat, a Robot pedig végrehajtja azokat. Mert programvezérlés nem elég tudni, hogy mely parancsokat és milyen sorrendben kell végrehajtani. Ezeket a parancsokat is le kell írni számítógép számára érthető formában, pl. algoritmus formába öntjük. A legegyszerűbb esetben a Robot algoritmusát a következőképpen írjuk le: Az algoritmus neve karakterek vagy szavak sorozata, szóközökkel elválasztva. A név első karaktere nem kezdődhet számmal. Helyes elnevezések: g, összeg, becenév kerület, április 12., április tizenkettedik, szám_11_cl. A „helyes” név kék színnel lesz kiemelve. use Robot algoritmus_neve start parancssorozat vége A programtörzsben található algoritmus jobb megértéséhez használhat megjegyzéseket. A megjegyzések | jellel kezdődnek. Ha a megjegyzések több sort ölelnek fel, minden sort meg kell előznie egy | jelnek. A megjegyzéseknek nincs hatása az algoritmus előrehaladására. Példa 1. Programozza be a "Knight's Move"-t (vigye a Robotot A pontból B pontba). Kezdeti állapot: Program: Eredmény: Az algoritmikus nyelv szabályai lehetővé teszik, hogy egy sorba több parancsot írjunk pontosvesszővel elválasztva. -3-

p. 4

2. példa: A robotot A pontból B pontba kell mozgatni. Az útvonal, amelyen a robotnak végig kell mennie, öt azonos részre osztható. Az egyes szakaszok átadásához szükséges parancsokat kényelmes egy sorba csoportosítani - ez lerövidíti az algoritmus rekordját és érthetőbbé teszi. Környezetváltás Robot. Ahhoz, hogy a robotot új környezetben történő cselekvésre kényszerítsük, a következő főmenü parancsokkal kell betölteni: Válassza ki a „Robot” elemet „Kezdő környezet módosítása” Megnyitás kívánt mappátés válasszon ki egy fájlt. Új környezet kialakítása. Új környezet létrehozásához a Robot számára végre kell hajtani a főmenü parancsait: Válassza az "Eszközök" "Kiinduló környezet szerkesztése" menüpontot. A "Beállítások" ablakban válassza ki a "Beállítások" elemet "Új beállítás" Állítsa be a sorok és oszlopok számát. Helyezze el a falakat egy egérkattintással, és mozgassa a robotot a kívánt cellába. Mentse el a környezetet a következő parancsokkal: "Környezet" "Mentés másként" Adja meg a fájl nevét és mappáját az elhelyezéshez. Nyomja meg a "Mentés" gombot. Fal hozzáadása/eltávolítása – kattintson a cellák közötti határra. Cella színezése / törlése - kattintson a cellára. Pont elhelyezése / eltávolítása - kattintson a cellára, miközben lenyomja Ctrl billentyű. Kisugárzás, címkék beállítása - kattintson a jobb egérgombbal. Mozgassa a robotot – húzza az egérrel. "Végrehajtás" A program végrehajtása. „Futtatás folyamatosan” Önálló munka a számítógépen: 1. Új környezet betöltése, a Robot áthelyezése a „B” pontba, a „pont” szimbólummal jelölt pontok mentén festve: „Műhely a robotnak” mappa „1” feladat „ C” (anyagok K. Polyakov webhelyéről http://kpolyakov.narod.ru), hozzon létre egy programot, nyissa meg a Robot ablakot, és futtassa a programot a végrehajtáshoz. Mentse el a programot a mappájába "1_B" néven. 2. Hozzon létre egy új beállítást, mentse el a mappájába "Beállítások_1" néven. Készítsen programot az új környezethez, és mentse el a mappájába "új_környezet_1" néven. 3. **Más problémák megoldása a műhely 1. mappájából. -4- B

p. 5

2. lecke. Ciklikus algoritmusok. Ciklus N - alkalommal. Ismétlési feladat: Petya algoritmust készített a Walk Robothoz. Kolja kitörölt belőle egy parancsot. Határozza meg, hogy Kolya melyik parancsot törölte, ha ismert, hogy a robotnak vissza kell térnie a kezdeti állapot. Válasz: jobbra használja a Robot alg Walk start. fel; jobbra. ? . le; bal; bal vége nc N-szer · parancssor kc Az algoritmusok összeállítása során gyakran előfordul, hogy egy bizonyos parancssorozatot többször egymás után kell végrehajtani. Például az utolsó lecke 2. számú példája. Az algoritmus írásának egyszerűsítésére ilyen esetekben használhatja a "Loop N-szor" parancsot. N egy egész kifejezés, amely megadja az ismétlések számát. Az algoritmus végrehajtásakor a parancsok sorozata ciklikusan megismétlődik a megadott számú alkalommal. Ez a szám lehet nulla vagy akár negatív is. Ezeket az eseteket nem tekintjük hibásnak, csak a ciklus törzse egyszer sem kerül végrehajtásra, és a számítógép azonnal folytatja a kts után írt parancsok végrehajtását. 1. példa: A robotot A pontból B pontba kell mozgatni. A B Példa 2. Színezzen egy 16 cellát tartalmazó sorban. 3. példa: Töltsön ki egy 5 (sorok) x 6 (oszlopok) méretű téglalapot. use Robot Alg Téglalap kezdete nc 5-ször kc vége Egy hurok egy másik hurok belsejébe helyezhető. Ezután beágyazottnak nevezik. -5-

p. 6

Önálló munka számítógépen: 4. példa. Mozgassuk a Robotot a kiindulási helyzetből a csillaggal jelölt pontba, és menet közben fessük át a labirintus celláit. Környezet és program létrehozása. Mentse el a fájlokat a mappájába. 5. példa: Helyezze át a robotot a kiindulási helyzetből az alapra, és fesse le a ponttal jelölt cellákat. Környezet és program létrehozása. Mentse el a fájlokat a mappájába. 6. példa: A robotot át kell vezetni a labirintuson a kiindulási helyzetből az A pontba. 7. példa: A Robotot végig kell vezetni a folyosón a kiindulási helyzettől az A pontig, minden oldalfolyosóba belenézve. 8. példa Írjon programot a *-gal jelölt mező celláinak festésére! A robot kezdeti helyzetét a ◊ ikon jelzi. 9. példa*. Az előadómezőn falak láthatók. Meg kell találni az előadó kezdeti, optimális pozícióját, és írni kell egy programot, amelynek eredményeként cellák lesznek kitöltve (az ábrán látható módon). **A programokat a „Workshop for Robot” mappa használatával _ 2. sz. -6-

p. 7

3. lecke Meg kell tanulnunk olyan univerzális algoritmusokat létrehozni, amelyek nem függnek a Robot és a fal távolságától, a falak hosszától. Ehhez az új hurokoperátort fogjuk használni. nt while feltétel parancssor kts A ciklus végrehajtása közben a számítógép megismétli a következő műveleteket:  ellenőrzi a feltételt;  ha a feltétel teljesül, akkor a ciklustörzs parancsok végrehajtásra kerülnek és a feltétel ismét ellenőrzésre kerül stb.  ha a feltétel nem teljesül, akkor a szabad ciklus bal falának végrehajtása befejeződik, és a parancsok végrehajtásra kerülnek, a jobb oldali falon lévő parancsok szabadon rögzítésre kerülnek kts után. alsó fal alsó szabad  ciklus feltételei (parancsok-kérdések): felső fal felső szabad cella töltött cella tiszta Megjegyzések.  Ha a feltétel eleve nem teljesül, akkor a ciklus törzse egyszer sem kerül végrehajtásra!  Előfordulhat, hogy a ciklus végrehajtása nem fejeződik be, ha a feltétel folyamatosan teljesül. Ez a helyzet általában a szabadon fordítható algoritmusok jobb oldali NC BYA hibáiból adódik. jobb; balra Példa egy végtelen algoritmusra (a jobb oldalon nincs fal): KC Feltételek lehetnek egyszerűek és összetettek. Egy egyszerű feltétel általában valamilyen ellenőrzés. A Robot bármely parancskérdése példaként szolgálhat. Egy összetett feltétel több egyszerű feltételből képződik az ÉS, VAGY, NEM szolgáltatásszavak használatával. Ha között egyszerű feltételek AND áll, akkor az összetett feltétel teljesüléséhez szükséges, hogy mindkét egyszerű igaznak bizonyuljon. Ha van VAGY az egyszerű feltételek között, akkor az összetett feltétel teljesüléséhez elegendő, ha legalább egy egyszerű feltétel igaz. 2. példa: Robot Példa 1. Át kell festeni, hogy a bot által jelzett rakétákat a bázisra vigye. a képen. A fal hossza és a faltól való távolság ismeretlen. használja a Robot alg To Base korán. nc míg a teteje szabad. . fel. kts. nts miközben a fal felül van. . jobbra. kts. fel con -7-

p. 8

▪ Önálló munka a számítógépen: Valahol a Robot mezőben van egy sarok formájú fal, melynek méretei ismeretlenek. A faltól balra, de mindig vele szemben lévő tetszőleges cellából származó robotnak el kell érnie a falat, és át kell festenie a mögötte lévő fal mentén lévő összes cellát, amint az az ábrán látható. ▪ A Robotot a kiindulási helyzetéből az A pontba kell mozgatni, miközben átfesti a mező meghatározott celláit. A falak mérete és a köztük lévő távolság tetszőleges lehet. ▪ Programok összeállítása a Robot Workshop mappa segítségével  Folder_4_Tasks_А_С_D  Folder_5_Tasks_A_B_C_D 4. lecke. Gyakorlati munka №1. Ciklikus algoritmusok a robothoz. 1. lehetőség 1. feladat. Fesd át a fal bal oldalán vagy a fal tetején található cellákat. A robot és a fal közötti távolság nem ismert. A falak hossza ismeretlen. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. R 2. feladat. Végrehajtó A robot valahol egy korlátozott négyzetes területen belül van. A négyzet oldalának hossza ismeretlen. Írjon egy algoritmust a robothoz, amely a négyzet átlójában található összes cellát a bal felső saroktól a jobb alsó sarokig festi. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. 3. feladat. Vigye át az előadót az A cellából a B cellába, miközben a megjelölt cellákra fest. A falak hossza és a köztük lévő távolság nem ismert. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. -8-

p. 9

4. Feladat. A Robotot a kiindulási helyzetből (◊) az A pontba kell mozgatni, miközben a mező jelzett celláit átfestjük. A falak mérete és a köztük lévő távolság tetszőleges lehet. 5. feladat A végtelen mezőn van egy létra. A lépések száma tetszőleges lehet. Az alsó vízszintes fal végtelenül jobbra, a felső vízszintes fal végtelenül balra nyúlik. A robot valahol az alsó vízszintes fal felett van. Fessük át a lépcsők függőleges része mentén elhelyezkedő cellákat (lásd az ábrát). A robot bármely végső pozíciója. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. Minden lépésnek van egy mérete: 2 cella vízszintesen és 2 cella függőlegesen. 2. lehetőség 1. feladat. Írjon a Robot számára egy algoritmust, amely átfesti a téglalap bal oldalán és az alsó oldala felett, valamint a fal mellett található összes cellát. A robot távolsága a falaktól és a falak hossza ismeretlen. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. Feladat 2. Végrehajtó A robot valahol egy korlátozott négyzetes területen belül van. A négyzet oldalának hossza ismeretlen. Írjon egy algoritmust a robothoz, amely a négyzet átlójában található összes cellát a jobb felső saroktól a bal alsó sarokig festi. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. 3. feladat. Vigye át az előadót az A cellából a B cellába, miközben a megjelölt cellákra fest. A falak hossza és a köztük lévő távolság nem ismert. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. -9-

p. 10

4. Feladat. A Robotot a kiindulási helyzetből (◊) az A pontba kell mozgatni, miközben a mező jelzett celláit átfestjük. A falak mérete és a köztük lévő távolság tetszőleges lehet. 5. feladat A végtelen mezőn van egy létra. A lépések száma tetszőleges lehet. Az alsó vízszintes fal végtelenül balra, a felső vízszintes fal pedig végtelenül jobbra nyúlik. A robot valahol az alsó vízszintes fal felett van. Fessük át a lépcsők függőleges része mentén elhelyezkedő cellákat (lásd az ábrát). A robot bármely végső pozíciója. Hozzon létre egy környezetet és írjon programot. Mentse el a fájlokat a mappájába. Minden lépésnek van egy mérete: 2 cella vízszintesen és 2 cella függőlegesen. 5. lecke Parancs „if _ then _ else _ all” A parancs általános nézete: ha feltétel akkor műveletek 1 else műveletek 2 mind Parancsstruktúra: a feltétel ellenőrzése után a feltétel igaza esetén az 1. műveletek végrehajtásra kerülnek, ellenkező esetben a 2. műveletek. hogy, az összes szó után írt parancsok. Az elágazás egyébként hiányozhat (nem teljes elágazás). Ebben az esetben a parancs alakja: ha a feltétel, akkor az összes művelet Ha a feltétel nem teljesül, akkor az után írt parancsok hivatalos szó Minden. 1. példa Hozzon létre egy programot, amely egy tetszőleges hosszúságú folyosón vezeti végig a robotot. Útközben a Robotnak át kell festenie az összes cellát, amelyek alatt nincs fal. A lyukak száma nem ismert. - 10 -

p. tizenegy

2. példa. Mozgassa a Robotot a B pontba, és fesse át a ponttal jelölt cellákat. A fal hossza és a „zsákutcák” száma ismeretlen. használja Robot alg To Base start nt while right free to right if top free then up paint down all kc down end Példa** Számítsa ki, hány árnyékolt cella van a folyosón (a végrehajtáshoz további konstrukciókat kell elemezni: integer count | egész típusú változó leírása count:= count+1 | növelje a változót 1 kimeneti számmal | a változó értékének megjelenítése a képernyőn Önálló munka a számítógépen: Környezet létrehozása és a probléma megoldása 1. feladat Algoritmus készítése hogy a robot áthaladjon a környezeten: Feladat 2. Írj egy programot, amelyben a Robot tetszőleges számú akadályt legyőzve eléri a falat.Akadályok bárhol elhelyezhetők.-11-

p. 12

3. feladat Színezd ki a pontokkal jelölt cellákat! 4. feladat: használd a Robot alget A bázishoz kezdd el festeni az nc-t, amíg a jobb oldal szabad nem lesz jobbra ha a teteje szabad akkor fel; átfesteni; le különben fesd át az összes kc le con 5. Feladat Fesd át a falak mellett található cellákat. Írj egy algoritmust, amely kitölti az összes cellát két fal között! Hogy melyik fal van balra, nem ismert. használja a Robot alg between_walls start nt-ig (nem szabad felülről) vagy (nem szabad alulról) right if (nem szabad fentről) és (nem szabad alulról) majd fesse át az összes kc végfelhasználás Robot alg uch5 start right nts amíg szabad alulról; festse át jobbra; lefelé nts, amíg a bal oldalt szabadon át nem festik; balra kts nts, amíg a bal szabadon át nem festik; lefesteni kts; bal; átfesteni; fel; nts, ​​amíg a tetejét szabadon át nem festik; fel kts nts, amíg szabadon átfesthető felülről; bal kts con 6. feladat**. A robot a folyosó elején áll. A folyosón fent és lent ismeretlen hosszúságú zsákutcák vannak, de ezek elhelyezkedése nincs egymással szemben. A folyosó hossza szintén ismeretlen. Írjon algoritmust az összes zsákutca kifestésére és a folyosó elhagyására! - 12 -

p. 13

használja a robot alg puffinokat korán. nts még (felső fal) vagy (alsó fal). . jobbra. . if (felső szabad) és (alsó fal) . . . Hogy. . . . nc míg a teteje szabad. . . . . fel; festeni át. . . . kts. . . . nc míg az alja szabad. . . . . le. . . . kts. . Minden. . if (alul szabad) és (felső fal). . . Hogy. . . . nc míg az alja szabad. . . . . le; festeni át. . . . kts. . . . nc míg a teteje szabad. . . . . fel. . . . kts. . Minden; . kts; con A pirossal kiemelt parancsok a folyosó elhagyásakor a megálláshoz szükségesek. 6. lecke Ciklikus és elágazó algoritmusok a robothoz. Feladatok megoldása KIM GIA segítségével. Megjegyzés. Az algoritmusok összeállításánál a feladatot általános formában kell megoldani, pl. az ábra alakja meghatározott, de az oldalak hossza, a lépések száma és egyéb paraméterek változhatnak. A programnak minden hasonló figuránál működnie kell! 1. feladat Hozzon létre egy beállítást, és írjon egy algoritmust, amely átfesti a fal függőleges szakaszaitól jobbra található összes cellát. robot alg feladat 1 start down; jobbra. nc míg a teteje szabad. . felfesteni. kts. nc, amíg a teteje szabaddá válik. . jobbra. kts. fel. nc, amíg a bal oldal szabaddá nem válik. . átfesteni; fel. kts kon - 13 -

p. 14

használja a robot alg 2. feladat elején. nts, ​​míg a jobb oldalon ingyenes. . jobbra. kts. nc, amíg a jog szabaddá válik. . fel. kts. jobbra. nc, amíg a jog szabaddá válik. . felfesteni; jobbra. kts con Minden lépcső magassága egy cella, szélessége 2 cella. 2. feladat Írjon egy algoritmust, amely kitölti a lépések feletti összes cellát! 3. feladat Fesd be a balról jobbra ereszkedő lépcsőfokok felett található összes cellát! robot alg 3. feladat kezdete. nc míg az alja szabad. . le; bal; balra. kts. nc, amíg a bal oldal szabaddá nem válik. . átfesteni; jobbra. . átfesteni; jobbra. . le. kts con 4. feladat Színezd ki a labirintus celláit! használja a Robot alg Labyrinth korai szakaszát. jobbra. nts míg a jobb falon. . átfesteni; fel. . átfesteni; fel. . átfesteni; jobbra. . átfesteni; le. . átfesteni; le. . átfesteni; jobbra. kts con 5. feladat** Az előadó egy tetszőleges cellában van, de mindig a fallal szemben (fenti kép). Ennek eredményeként az alábbi ábrán látható módon át kell festeni a cellákat. -14-

p. 15

robot alg használata Kilépés start. nc míg a jobb oldalon szabad jobbra; . kts. nc jobb oldali falig; . kts. jobb; fel. nts még (bal oldalon fal és felül szabad) vagy (felül fal és jobb oldalon szabad) vagy (jobb oldalon fal és alul szabad) vagy (alul fal és bal oldalon szabad). . if (bal fal) és (felső szabad) . . . Hogy. átfesteni; fel. . Minden. . if (felső fal) és (jobb szabad) . . . Hogy. . átfesteni; jobbra. . Minden. . ha a jobb oldalon fal van és az alja szabad. . . Hogy. . átfesteni; le; . . Minden. . ha a fal alul van és a bal szabad. . . Hogy. . . átfesteni; bal; . . Minden; . kts; con 7. lecke Segédalgoritmusok Egyes feladatok megoldása során célszerű azokat kisebb részfeladatokra bontani, amelyek mindegyike önálló algoritmusként formalizálható. Ebben az esetben először az úgynevezett főalgoritmus kerül összeállításra, amelyben segédalgoritmusok hívásait használják fel a részfeladatok megoldására, amelyeket később hozzáadnak. Ezt a megoldási módot szekvenciális finomítási módszernek nevezzük. Lehetővé teszi a programozók egy csoportjának, hogy dolgozzon egy projekten, miközben mindegyik megoldja a saját részfeladatát. A segédalgoritmus végrehajtására szolgáló parancsot hívásnak nevezzük, és a főalgoritmus törzsébe írjuk. Algoritmikus nyelvben először a fő algoritmust írják le, a segédalgoritmusokat pedig egy sorba írják alá. 1. példa Tekintsük az 1. lecke beállítását. A robotot át kell vinni a ponttal jelölt cellába. használja Robot alg Folyosó indítás bypass; kerülőút; kerülőút; kerülőút; bypass con alg bypass start up; fel; lent; le; jobb kon - 15 -