Tehtävät robotin kanssa Unified State Examination -tietotekniikassa. Esiintyjä robotti
Opimme pyytämään sitä jatkotyötä varten. Siirrytään nyt suoraan robotin algoritmien kokoamiseen yksinkertaisilla komennoilla.
Jos haluat tietoa video-opetusohjelmamuodossa, sivustolla on video-opetusohjelma
Jokaisella esiintyjällä on oltava komentojärjestelmä ( HIIHTÄÄ — toteuttajan komentojärjestelmä). Executor komentojärjestelmä- kaikki komennot, jotka esiintyjä voi suorittaa. Harkitse esimerkiksi koulutettua koiraa. Hän osaa suorittaa joitain komentoja - "Istu", "Makaa", "Lähellä" jne. Tämä on hänen komentojärjestelmänsä.
Yksinkertaiset robottikomennot
Robotissamme on myös komentojärjestelmä. Tänään katsomme yksinkertaiset komennot Robotti. Niitä on yhteensä 5:
- ylös
- vasemmalle
- oikein
- maalata päälle
Näiden komentojen suorittamisen tulos on selvä niiden nimistä:
- ylös- Siirrä robottia yhden solun ylöspäin
- alas- Siirrä robottia yhden solun alaspäin
- vasemmalle— Siirrä robottia yhden solun vasemmalle
- oikein— Siirrä robottia yksi solu oikealle
- maalata päälle— maalaa nykyisen solun päälle (solu, jossa robotti sijaitsee).
Nämä komennot voidaan kirjoittaa näppäimistöltä tai voit käyttää pikanäppäimiä (näppäimiä painamalla komennot lisätään automaattisesti):
- ylös - Escape, ylös (nuoli ylös)
- alas - paeta, alas (alasnuoli)
- vasen - Esc, Vasen (vasen nuoli)
- oikea - Escape, oikea (oikea nuoli)
- maalaa päälle – pako, avaruus (avaruus)
Huomaa, että sinun on syötettävä haluamasi pikanäppäinyhdistelmä ei tavalla, johon olemme tottuneet! Olemme tottuneet painamaan näppäimiä samanaikaisesti, mutta täällä niitä tarvitaan paina peräkkäin. Jos haluat esimerkiksi kirjoittaa ylös-komennon, paina Esc-näppäintä, vapauta se ja paina sitten ylänuolta. Tämä on muistettava.
Nyt olemme valmiita kirjoittamaan ensimmäisen algoritmin robotille. Suosittelen aloittamaan yksinkertaisella - piirrä neliö, jonka sivu on 3 solua. Mennään!
Käynnistetään Idol, hän. Voinko aloittaa ohjelman kirjoittamisen? Ei tietenkään! Emme ole! Tehdään se. Suosittelen käyttämään tätä:
Nyt kaikki on valmista. Aloitetaan ohjelman kirjoittaminen. Kun hän näyttää tältä
"|"-symbolin poistaminen ja kutsumme algoritmiamme "nelioksi"
Suosittelen piirtämään neliön, liikuttamalla myötäpäivään. Ensin maalataan nykyinen solu antamalla komento maalata päälle. Sitten otamme askeleen oikealle ja maalaamme solun uudelleen. Ja vielä kerran astu oikealle ja maalaa päälle.
Yritetään ajaa ohjelma ja katsotaan mitä tapahtuu. Aloita painamalla F9 tai työkalurivin painike
Tämän seurauksena meidän pitäisi nähdä tällainen kuva
Jos tällainen robotti-ikkuna ei näy sinulle, napsauta työkalupalkissa " Näytä robottiikkuna"tai valitse robottivalikosta" Näytä robottiikkuna". Jatketaan edelleen.
Nyt siirrytään alas ja maalataan oikea puoli neliö:
alas
maalata päälle
alas
maalata päälle
Sitten mennään vasemmalle maalaamalla neliön alareuna
vasemmalle
maalata päälle
vasemmalle
maalata päälle
Meillä on yksi maalaamaton solu jäljellä. Maalataan se päälle
ylös
maalata päälle
Kaikki on valmista! Tämän seurauksena ohjelmamme näyttää tältä:
käytä robottia
alg Neliö
alku
maalata päälle
oikein
maalata päälle
oikein
maalata päälle
alas
maalata päälle
alas
maalata päälle
Esittäjä Robotti on suorakaiteen muotoisessa kentässä, joka on jaettu soluihin, joiden välissä voi olla seiniä ja se sopii kokonaan yhteen soluun.
Robotti voi liikkua kentällä, maalata soluja, mitata lämpötilaa ja säteilyä. Robotti ei voi kävellä seinien läpi, mutta se voi tarkistaa, onko sen vieressä seinä.
- "Robotin" esiintyjän komentojärjestelmä sisältää:
- 5 komentoa, jotka käynnistävät robotin toiminnot (vasen, oikea, ylös, alas, maali)
- 10 kunnontarkistuskomentoa:
- 8 komentoa muodossa [vasen/oikea/ala/ylä] [seinä/vapaa]
- 2 komentoa solutyypistä [täytetty/tyhjä]
2 mittauskäskyä (lämpötila, säteily)
Toimintakomennot
Tarkista komennot | Joukkue |
Kuvaus | vasemmanpuoleinen kirjaus on ilmainen |
Palauttaa kyllä, jos robotti voi liikkua vasemmalle, muuten ei. | oikealla oleva kirjautuminen on ilmainen |
Palauttaa kyllä, jos robotti voi liikkua oikealle, muuten ei. | kirjaudu ylhäältä ilmaiseksi |
Palauttaa kyllä, jos robotti voi liikkua ylöspäin, muuten ei. | kirjaudu alla ilmaiseksi |
Palauttaa kyllä, jos robotti voi liikkua alaspäin, muuten ei. | hirsi vasen seinä |
Palauttaa kyllä, jos robotin vasemmalla puolella on seinä, muuten ei. | hirsi oikea seinä |
Palauttaa kyllä, jos robotin oikealla puolella on seinä, muuten ei. | hirsi yläseinään |
Palauttaa kyllä, jos robotin yläpuolella on seinä, muuten ei. | hirsi seinän alla |
Palauttaa kyllä, jos robotin alla on seinä, muuten ei. | lokisolu on täytetty |
Palauttaa kyllä, jos solu on täytetty, ja ei, jos solua ei ole täytetty. | loki solu puhdas |
Palauttaa ei, jos solu on täytetty, ja kyllä, jos solua ei ole täytetty.
Mittauskomennot
Olkoon tarpeen siirtää seinän vasemmalla puolella olevasta solusta seinän oikealle puolelle:
Algoritmi saattaa näyttää tältä:
käytä robottia
alg esimerkki 1
alku
. alas
. oikein
. ylös
con
Jos yrität ohjata robottia seinän läpi, tapahtuu vika. Robotti törmää seinään eikä pysty enää seuraamaan komentoja.
Algoritmi saattaa näyttää tältä:
Kirjoitetaan algoritmi robotille, joka ohittaa sokkelon pisteestä A paikkaan B:
alg esimerkki 1
. alas
Alg paikasta A paikkaan B
. ylös ; ylös ; oikea ;
. ylös
alas ; alas ; oikein
Kunkin osan läpimenokomennot voidaan ryhmitellä yhdelle riville - tämä lyhentää algoritmin tallennusta ja tekee siitä ymmärrettävämmän. Jotta komentoja voidaan kirjoittaa yhdelle riville, ne on erotettava puolipisteellä. Executor Robot Komentojärjestelmä esiintyjälle Robotille Siirtokomennot: ylös, alas, vasemmalle, oikealle Robotti liikkuu yhden solun ylös, alas, vasemmalle, oikealle. Paint-komento maalaa solun, jossa robotti seisoo. Ehdon totuuden tarkistaminen: vapaa ylhäältä, vapaa alhaalta, vapaa vasemmalta, vapaa oikealta Robotti tarkistaa ehdon totuuden, että solussa, jossa robotti sijaitsee, ei ole seinää. Voit käyttää muodostettujen yhdisteehtojen merkintää loogisia operaatioita
JA, TAI, EI.
Performer Robot Ympäristön suora muokkaus Kaikki ympäristön muokkauskomennot suoritetaan hiirellä: aseta/poista seinä - klikkaa solujen välistä rajaa, maalaa/tyhjennä solu - klikkaa solua, liikuta robottia - vedä hiirtä haluttuun soluun. Executor Robot -valikon komennot Robot Show Robot -kenttä Tekee Robotin havainnointiikkunan näkyväksi. Tulostusasetus Luo tiedoston sisään PDF-muodossa , joka kuvaa nykyistä tilannetta värillisenä tai mustavalkoisena. Tallenna ympäristö tiedostoon Creates tekstitiedosto
tilannekuvauksen kanssa sisäisessä *.fil-muodossa. Tämä tiedosto voidaan ladata myöhemmin aloitusympäristöksi (Muuta aloitusympäristöä -komento) tai aloitusympäristöä muokattaessa (Avaa aloitusympäristön muokkaaminen windows -komento). Muuta aloitusympäristöksi Asettaa uuden aloitusympäristön tiedostonimen (vakiovalintaikkunan avulla) ja lataa uuden aloitusympäristön. Palaa aloitusympäristöön Tekee aloitusympäristöstä ajantasaisen.
Esiintyjärobotti Kuva nykytilanteesta havaintoikkunassa Nykyisen ympäristön kuva on aina kokonaan sijoitettu Robotin havaintoikkunan työkenttään. Työkentän tausta on vihreä. Täytetyt solut ovat harmaita. Solujen välissä on ohuita mustia viivoja. Seinät näkyvät paksuina keltaisina viivoina. Havaintoikkunan työkentän solussa Robotti on kuvattu timanttina.
Johdatus Idol-ohjelmaan ja ohjelmoinnin perusteiden hallinta.
Siinä opiskelijat voivat hankkia käytännön taitoja algoritmin luomisessa ja virheenkorjauksessa työskennellessään sellaisten esiintyjien kanssa kuin Robot, Draftsman, Aquarius, Grasshopper, Turtle.
Kun opiskelet yhtä tietojenkäsittelytieteen vaikeimmista osista, "algoritmointia ja ohjelmointia".
Kehittämisen tarkoitus :
Lataa:
Esikatselu:
Tietojenkäsittelytieteen metodologinen kehitys.
Aihe: “Robotisoittaja KuMir-ohjelmassa tietojenkäsittelyn tunneilla”
tekniikan opettaja "Informatiikka ja ICT"
Selittävä huomautus
Kehitystavoite: opiskella ohjelmointimahdollisuuksia tietyn Robotin esittäjän esimerkillä KUMIR-ympäristössä; antaa käytännön taitoja esiintyjän kanssa työskentelyyn.
Metodologinen kehityskoottu tietojenkäsittelyn tunneilleHarjoittele tietokoneella: työskennellä opetusalgoritmien toteuttajan kanssa; lineaaristen, haarautuvien ja syklisten algoritmien laatiminen suorittimen ohjaukseen; monimutkaisen rakenteen omaavien algoritmien laatiminen; apualgoritmien käyttö (proseduurit, aliohjelmat).
Opiskelijoiden tulisi tietää:
- mikä on esiintyjä; SKI Robot, Robotin esiintyjän ympäristö;
- mikä on algoritmi;mitkä ovat algoritmin pääominaisuudet;
- tapoja kirjoittaa algoritmeja: vuokaaviot, opetusalgoritminen kieli;perusalgoritmiset rakenteet: seuraaminen, haarautuminen, silmukka; rakenteet
- algoritmit; ⇒ apualgoritmien osoittaminen; teknologiat monimutkaisten algoritmien rakentamiseen:
Opiskelijoiden tulee kyetä:
- ymmärtää algoritmien kuvaukset opetusalgoritmisella kielellä;
- suorittaa algoritmijäljitys tunnetulle esiintyjälle;
- luoda lineaarisia, haarautuvia ja syklisiä ohjausalgoritmeja robottisuorittajalle; korosta alitehtävät; määritellä ja käyttää apualgoritmeja.
Oppitunti 1 (2 tuntia) Oppitunti 1.
Esiintyjä robotti.Executor komentojärjestelmä.
Tuntisuunnitelma.
- Kuvaus esiintyjän SKI:stä, esiintyjän ympäristöstä.
2. Tyypillisten robottialgoritmien analyysi.
Oppitunnin edistyminen.
Katsotaanpa taiteilijan kuvausta.
Taiteilijaympäristö: Esiintyjä Robotti voi navigoida labyrintin läpi, joka on piirretty soluihin jaettuun tasoon.
SKI-robotti : yksinkertaiset komennot: ylös, alas, vasemmalle, oikealle, maali.
Loogiset komennot: (kuntotarkistukset)
yläosa vapaa pohja vapaa
vasen vapaa oikea vapaa.
Loogiset liitännät: JA, EI, TAI:
Esimerkki: (Ei jätetty vapaaksi) tai (Ei oikea vapaa)
Haarakomento: loop komento:
Jos ehto sitten ei ole vielä ehtoa
Sarja komentoja sarja komentoja
siinä kaikki kts
(2009 CMM:issä robotin komennot poikkesivat lapsille tutuista komennoista, mikä johti hämmennystä :)
Haarakomento: loop komento:
Jos ehto sitten nts toistaiseksi ehto tehdä
Sarja komentoja sarja komentoja
loppu loppu
Yleisnäkymä Idol-ohjelmaikkunasta. Robotin graafinen ympäristö:
KIM:issä demo versio Vuoden 2010 joukkuemuoto muutettu muotoon tavanomaista
Menettely algoritmin luomiseksi:
1. Joukkueet Työkalut - Muokkaa aloitusympäristöäpiirrä seinät robottikenttään ja aseta robotti alkuperäiseen asentoonsa.
2. Joukkueet Robotti - Muuta aloitusympäristöäylläpitää uutta ympäristöä.
3. Joukkueet Lisää - Käytä robottiailmoittaa taiteilija.
4. Kirjoita asiakirja-ikkunaan algoritmi valikon avulla Lisää.
5. Suorituskomentojen käyttäminen – suorita algoritmi jatkuvasti (tai askel askeleelta).
6. Harkitse algoritmin suorittamisen tulosta ja tee tarvittaessa virheenkorjaus.
Oppitunti 1 (2 tuntia) Oppitunti 2.
Käytännön työ"Lineaaristen algoritmien kokoaminen".
Tehtävät: 1. Robotointi mielivaltaisessa kentän kohdassa. Maalaa solu alkuperäisen sijainnin ylä-, ala- ja oikealle puolelle.
- Robotti mielivaltaisessa kentän kohdassa. Siirrä robottia 4 ruutua oikealle värittäen ne.
- Luo uusi aloitusympäristö piirtämällä kenttään neliö, jonka sivu on 4 ruutua. Tallenna asetus aloitusasetukseksi.
- Luo uusi aloitusympäristö piirtämällä kentälle käytävä, jonka seiniin on käytävät. Tallenna ympäristö nimellä obst2.fil. Vaihda aloitusympäristö äskettäin luotuun.
Oppitunti 2 (2 tuntia) Oppitunti 1.
Aihe : Algoritmin haarautuminen ja peräkkäinen tarkentaminen.
CMM-tehtävien analysointi robottisuorittimella.
Algoritmi saattaa näyttää tältä:
alg kim 2009
alg esimerkki 1
jos ei ole vapaa alhaalta
sitten oikealle
Kaikki
jos ei ole vapaa alhaalta
sitten oikealle
Kaikki
jos ei ole vapaa alhaalta
sitten oikealle
Kaikki
. ylös
Algoritmi saattaa näyttää tältä:
alg kim 2010
alg esimerkki 1
jos ei ole vapaa alhaalta
sitten oikealle
Kaikki
jos ei ole vapaa alhaalta
sitten oikealle
Kaikki
jos ei ole vapaa alhaalta
sitten oikealle
Kaikki
. ylös
Ave. orja. Nro 14. Haaroitusalgoritmien kokoaminen ja virheenkorjaus
Tehtävät. Katso liite.
Oppitunti 3. Sykliset algoritmit. Oppitunti 1-2
Kohde: paljastaa syklin käsitteen olemuksen algoritmeissa, näyttää tallennussyklien muodot algoritmeissa, antaa taitoja luoda ja tallentaa syklisiä algoritmeja.
Ave. orja. Nro 15. Syklisten algoritmien kokoaminen ja virheenkorjaus
1.Luo algoritmi, joka maalaa kaikki seinän vieressä olevat sisäiset solut.
Algoritmi saattaa näyttää tältä:
alg
alg esimerkki 1
nts-oikeus on toistaiseksi ilmainen
maalata päälle; oikein
kts
nts pohja on toistaiseksi ilmainen
maalata päälle; alas
kts
nts ei ole vielä vapaa alhaalta
maalata päälle; vasemmalle
kts
. ylös
2.Luo algoritmi, joka maalaa kaikki solut robotin ja seinän välillä. Etäisyys seinään ei ole tiedossa.
Algoritmi saattaa näyttää tältä:
alg
alg esimerkki 1
nts-oikeus on toistaiseksi ilmainen
oikea; maalata päälle
kts
. ylös
3.Luo algoritmi, joka maalaa kaikki kahden seinän välissä olevat solut.
Algoritmi saattaa näyttää tältä:
alg uch3
alg esimerkki 1
nts vielä (ei vapaa ylhäältä) tai (ei vapaa alhaalta)
oikein
jos (ei vapaa ylhäältä) ja (ei vapaa alhaalta)
Että
maalata päälle
Kaikki
kts
. ylös
4.Luo algoritmi, joka maalaa kaikki solut suorakaiteen muotoisen seinän ympärille.
alg uch4
alg esimerkki 1
maalata päälle; ylös
nts ei ole vielä vapaa oikealla
maali päälle;ylös;
kts
maalata oikealle
nts ei ole vielä vapaa alhaalta
maalata päälle;oikealle;
kts
maalata päälle; alas
nts ei ole vielä vapaana vasemmalla
maalata päälle;alas;
kts
maalata päälle;
nts ei ole päällä vielä ilmainen
maalata päälle; vasemmalle;
kts
. ylös
Algoritmi saattaa näyttää tältä:
alg uch5
alg esimerkki 1
oikein
nts ei ole vielä vapaa alhaalta
maalata päälle; oikein
kts
maalata päälle; alas
nts vasen on toistaiseksi ilmainen
maalata päälle; vasemmalle
kts
nts ei ole vielä vapaana vasemmalla
maalata päälle; alas
kts
maalata päälle;vasen;maalaa päälle; ylös;
nts ilmaiseksi päällä toistaiseksi
maalata päälle; ylös
kts
nts ei ole päällä vielä ilmainen
maalata päälle; vasemmalle
kts
. ylös
Oppitunti 4 Oppitunti 1
Apualgoritmit.
Kohde: esitellä pää- ja apualgoritmien käsite; selittää apualgoritmin käytön säännöt; analysoida esimerkkejä algoritmeista käyttämällä apuohjelmia.
Oppituntisuunnitelma
1. Uusien termien esittely (pää- ja apualgoritmit, kutsut) ja uusien käsitteiden selittäminen.
2. Esimerkkejä ongelmien ratkaisusta apualgoritmilla.
Joitakin tehtäviä ratkaistaessa on kätevää jakaa ne pienempiin osatehtäviin, joista jokainen voidaan muotoilla itsenäiseksi algoritmiksi. Tällöin ensin käännetään ns. pääalgoritmi, jossa alitehtävien ratkaisemiseen käytetään kutsuja apualgoritmeille, jotka lisätään myöhemmin. Tätä ratkaisua kutsutaanperäkkäisen jalostuksen menetelmä.Sen avulla ryhmä ohjelmoijia voi työskennellä projektin parissa, ja jokainen ratkaisee oman alatehtävänsä.
Ongelman ratkaisuprosessissa jokainen apualgoritmi voidaan tarvittaessa jakaa pienempiin apualgoritmeihin.
Kutsutaan komento apualgoritmin suorittamiseksi haaste ja se on kirjoitettu pääalgoritmin rungossa.
Samaa algoritmia voidaan pitää pää- ja apualgoritmina suhteessa muihin algoritmeihin. Algoritmisessä kielessä pääalgoritmi kirjoitetaan ensin ja apualgoritmit kirjoitetaan peräkkäin.
Tehtävä 1:
Robotti on kentän vasemmassa yläkulmassa. Ei seiniä tai maalattuja soluja. Luo apualgoritmi, joka piirtää neljä ristiä yhdelle vaakaviivalle. Robotin lopullinen sijainti voi olla mielivaltainen.
Ratkaisu
Analyysi taululla:
Tehtävä 2. Robotti on kentän vasemmassa yläkulmassa. Ei seiniä tai maalattuja soluja. Luo algoritmi, joka maalaa 8 x 8 neliön shakkilaudan kuvioon. Robotin lopullinen sijainti voi olla mielivaltainen.
Oppitunti 4 Oppitunti 2
Käytännön työ PC:llä ”Ongelman ratkaiseminen apualgoritmeilla”.
Kohde : juurruttaa käytännön taitoja algoritmien rakentamiseen peräkkäisen tarkennusmenetelmän avulla.
Oppituntisuunnitelma
1. Tehtävä tapahtuu kokonaan PC:llä. Oppilaat saavat tehtäviä ja suorittavat ne Idol-ohjelmistoympäristössä. Työn tulokset tallennetaan tiedostoina myöhempää tarkistusta varten.
Ongelma 1 . Robotti on kentän vasemmassa alakulmassa. Ei seiniä tai maalattuja soluja. Luo algoritmi, joka maalaa 6 yhtä pitkää pystysuoraa raitaa 6 soluun. Robotin lopullinen sijainti voi olla mielivaltainen.
Ongelma 2 .Luo apuvälineillä algoritmi luvun 1212 muodostavien solujen maalaamiseen.
Kotitehtävät: Keksi algoritmi, joka piirtää seuraavan kuvan: Ratkaise ongelma käyttämällä kahta apualgoritmia.
Oppitunti 5 Oppitunti 1-2
Testata
"Algoritmin laatiminen Robot executor -ympäristössä."
Kohde: testaa hankittua tietoa algoritmien luomisesta ja analysoinnista Idol-ohjelmistoympäristössä.
Tehtäviä varten koetyötä on jaettu vaikeustasoittain ja sisältää 3 tehtävää esiintyjärobotin kanssa (tehtävät 1 ja 2 - haaroituksesta ja silmukoista, tehtävä 3 - apualgoritmista.) Tehtävien tekstit on esitetty liitteessä.
Alku- ja lopputilanteet sekä luodut algoritmit tallennetaan tiedostoksi.
Arvosana annetaan tehtävän vaikeusasteen mukaan. Opiskelijalla on oikeus valita tehtävän tyyppi.
Ja tänään puhumme sykleistä. Selvitetään, mikä sykli on ja kuinka opettaa robottimme suorittamaan syklisiä algoritmeja.
Niin, mikä on sykli? Kuvittele, että olemme luokassa fyysistä kulttuuria ja meillä on tehtävä edessämme tee 7 kyykkyä. Tämä tehtävä voidaan kirjoittaa lineaarisena algoritmina, jolloin se näyttää suunnilleen tältä:
tee kyykky
tee kyykky
tee kyykky
tee kyykky
tee kyykky
tee kyykky
tee kyykky
Eli toistimme komennon "tee kyykky" 7 kertaa. Onko järkevää kirjoittaa 7 identtistä komentoa? Voi olla helpompi antaa käsky tee 7 kyykkyä? Tietysti se on yksinkertaisempaa ja oikeampaa. Tämä on sykli. Voit itse muistaa esimerkkejä syklistä elämästä - niitä on melko paljon.
Siten lineaarinen algoritmi, jossa samat komennot toistuvat, voimme järjestää syklisenä algoritmina- jotain tällaista:
toista 7 kertaa
tee kyykky
syklin loppu
Näin suunnittelimme syklin keksimällämme kielellä. Robot-esittäjällä on myös kyky tallentaa jaksoja. Lisäksi, syklit ovat erilaisia. Vaihtoehtoa, jota juuri tarkastelimme, kutsutaan lenkki laskurilla tai silmukka parametrin kanssa.
Syklityypit.
Silmukka laskurilla.
Lenkki laskurilla käytetään, kun tiedetään etukäteen kuinka monta toistoa on tehtävä. Yllä olevassa kyykkyjä koskevassa esimerkissä asia on juuri näin.
Jotta voit kirjoittaa silmukan, jossa on laskuri suorittajalle, sinun on tiedettävä sen syntaksi. Ja hän on tällainen:
nc<toistojen määrä> kertaa
<команда 1>
<команда 2>
…
<команда n>
Tässä meidän on määritettävä toistojen määrä (numero) ja toistettavat komennot. Komennot, jotka toistetaan silmukassa, kutsutaan silmukan runko.
Katsotaanpa tätä esimerkin avulla.
Aluksi robotti oli ylävasemmassa solussa.
Ratkaistaan ensin ongelma lineaarisesti. Tässä tapauksessa maalaamme nykyisen solun päälle ja siirrämme 1 solun oikealle ja ohjelma näyttää tältä:
Algoritmi saattaa näyttää tältä:
alg
alku
maalata päälle
oikein
maalata päälle
oikein
maalata päälle
oikein
maalata päälle
oikein
maalata päälle
oikein
maalata päälle
oikein
maalata päälle
oikein
Kuten näet, komennot maalata ja oikealle toistetaan 7 kertaa. Kirjoitetaan nyt ohjelma uudelleen silmukan avulla. Muuten, voit lisätä syklin ohjelmaan siirtymällä valikkoon Lisää valitse kohde tsk-tsk-tsk tai paina jotakin näppäinyhdistelmästä Esc, P(venäläinen R-kirjain) tai Esc, H(Latinalainen kirjain H). Lisäksi näppäimiä on painettava peräkkäin- ensin Esc, vapauta se ja vasta sitten P tai H.
Tässä siis meidän silmukkaohjelma näyttää tältä:
Algoritmi saattaa näyttää tältä:
nts 7 kertaa
maalata päälle
oikein
Jos suoritamme sen, näemme, että tulos on sama - 7 täytettyä solua. Ohjelmasta on kuitenkin tullut lyhyempi ja paljon älykkäämpi algoritmin näkökulmasta!
Lämmittelynä ja vahvistuksena ehdotan, että kirjoitat itse Robotille ohjelman, joka piirtää neliön, jonka sivu on 7 solua. Luonnollisesti silmukan avulla. Odotan ratkaisua kommenteissa.
Ehdollinen silmukka.
Ratkaistaessa Valtion akateemisen tietotekniikan tehtävää 19 robotilla, silmukan käyttö laskurin kanssa ei toimi. Koska kenttä siellä on pääsääntöisesti loputon ja seinillä ei ole tiettyä pituutta. Siksi emme pysty määrittämään laskurin toistojen määrää silmukalle. Mutta sillä ei ole väliä - se auttaa meitä silmukka ehdon kanssa.
Palataanpa liikuntakasvatukseen ja muutetaan ongelmaa. Loppujen lopuksi joku ei pysty tekemään 7 kyykkyä, kun taas toinen pystyy tekemään 27. Onko mahdollista ottaa tämä huomioon sykliä luotaessa? Varmasti. Vain nyt emme käytä laskuria (toistojen lukumäärää), vaan ehtoa. Tee esimerkiksi kyykkyjä ennen kuin väsyt. Tässä tapauksessa henkilö ei tee tiettyä määrää kyykkyjä, vaan kyykkyä, kunnes hän väsyy. Ja syklimme abstraktilla kielellä on seuraavanlainen:
Heippa ei väsynyt
tee kyykky
syklin loppu
Sanat eivät ole väsyneet meidän tapauksessamme - tämä on ehto. Kun tosi, silmukka suoritetaan. Jos se on epätosi (väsynyt), silmukan runkoa ei suoriteta. Robotin esiintyjällä on useita ehtoja
ilmainen päälle
vapaa alhaalta
jätetty vapaaksi
vapaa oikealla
seinä yläpuolella
seinä alle
vasen seinä
seinä oikealla
Mutta GIA:n tehtävän 19 olosuhteissa on ilmoitettu vain ensimmäiset 4, joten käytämme vain niitä.
Nyt ratkaistaan seuraava tehtävä Robotille - piirretään pystysuora viiva kentän vasemmalta oikealle reunalle käyttämällä ehdollista silmukkaa. Aluksi robotti sijaitsee vasemmassa yläkulmassa.
Muotoillaan ensin sanallinen algoritmi - eli kuvataan sanoin, mitä robotin tulee tehdä. Tämä algoritmi kuulostaa tältä:
« Kun oikealla on vapaata tilaa, ota askel oikealle ja maalaa solu »
Tämän seurauksena robotti juoksee kaikkien solujen läpi oikealle ja maalaa niitä, kunnes oikealla on seinä.
Robotin ohjelmamme lähdekoodi on suunnilleen tällainen:
Algoritmi saattaa näyttää tältä:
nts-oikeus on toistaiseksi ilmainen
oikein
maalata päälle
Tämän ohjelman suorittamisen seurauksena näemme seuraavan kuvan: