Úkolem učitele je jít touto cestou se studentem, nepojistit se proti neúspěchům, ale předejít zklamání kvůli možné obtíže. Je velmi důležité organizovat hodiny tak, aby děti samy objevovaly nové věci prostřednictvím činností, které jsou pro ně smysluplné.
Jak robot pomáhá při studiu informatiky? Uvedu jen několik témat informatiky, na kterých je robotika založena.
Téma "Soubory a souborový systém".
Žák měl k dispozici mikropočítač LEGO®NXT z výukové sady. LEGO Mindstorms Vzdělávání NXT. Ovládejte to souborový systém probíhá pomocí standardních příkazů, ale protože objem paměti není velký, kontrola toho, co je potřeba a co není požadováno, musí být prováděna neustále. Abyste mohli vyjádřit akce robota, zobrazit obrázek nebo přidat do knihovny pracovních programů, musíte pracovat se základními pojmy počítačové vědy: soubor, typ souboru, cesta k souboru, nabídka, složka.
Téma: „Informační procesy“, „Kódování informací“.
Robotická stavebnice je vybavena senzory, které zaznamenávají zvukové, hmatové a obrazové informace. Jakmile jsou informace digitalizovány, lze je zobrazit na obrazovce. Speciální funkce mikropočítače umožňuje experimentovat se senzory a motory pomocí připravených programů. Po provedení série experimentů se senzory se objeví pochopení: proč ultrazvukový senzor vzdálenosti pracuje pomaleji než senzor infračerveného světla, jak se zvuk mění v digitální kód a tak dále. Studium informačních procesů a principů kódování informací poskytuje hlubší pochopení podstaty informačních technologií.
Téma: Komunikační technologie.
Mikropočítač LEGO®NXT podporuje technologii bezdrátová komunikace. Pomocí funkce Bluetooth můžete nastavit bezdrátové připojení mezi mikropočítačem NXT a dalšími zařízeními podporujícími technologii Bluetooth, jako jsou jiné NXT, s mobilní telefony nebo s počítači. Po instalaci bluetooth připojení, je možné: stahovat programy z počítače na dálku; odesílat programy z jiných zařízení (ne z počítače), včetně NXT; posílat programy jak jednotlivým NXT, tak jejich skupinám. Tato technologie umožňuje ovládat robota pomocí mobilního telefonu.
Témata „Algoritmy. Algorithm Executor“, „Programovací prostředí“.
Pro počáteční seznámení s robotem můžete přímo naprogramovat jednotku NXT bez přístupu k počítači. Přímo na displeji můžete pomocí šablony pěti příkazů vytvořit jednoduchý program a smyčka to. Bez znalosti základních algoritmických struktur a zvládnutí programovacího prostředí se to však neobejde. Právě schopnost naprogramovat robota z něj dělá univerzálního umělce schopného řešit různé problémy. Měli byste začít ovládat programovací technologii pomocí vizuálních programovacích prostředí a poté přejít k výkonnějším a modernějším prostředím orientovaným na události.
Robotika tedy bude vyžadovat základní znalosti informatiky a nevyčerpatelná touha studenta udělat ze svého robota „nejlepšího“ ho tlačí k osvojení nových znalostí.
Proč lze robota označit za ideální výukový nástroj? Protože tento nástroj umožňuje vytvořit učební prostředí, které bude využívat přirozené touhy dítěte hrát si, tvořit a komunikovat s vrstevníky. Můžeme tedy zdůraznit výhody robotiky jako vyučovacího nástroje:
. K získávání znalostí dochází během hry.
. Stavba robota nabízí tvůrčí svobodu.
. Většina studentů má touhu zlepšit svou práci.
Jako příklad bych uvedl model „Robot doručující dobroty zdarma“, který vytvořil žák 6. třídy v rámci kurzu „Programování robotů“ při mimoškolních aktivitách. Robot je sestaven ze sady LEGO MINDSTORMS NXT Education 9797 podle standardního modelu Alpharex 1.0 a je doplněn barevným senzorem pro indikaci stavu robota a podnosem na pamlsky.
Cílem práce je implementovat model lidské chůze v maximální možné míře s dostupnými prostředky. Pohyb každé nohy je řízen motorem a mechanickou sestavou převodů a pák. Jedna páka pohybuje nohou nahoru a dolů, druhá ji posouvá dopředu. V tomto případě se tělo vychýlí směrem k nosné noze, díky čemuž robot udržuje rovnováhu. Tato chůze se nazývá "šoupání"
Samostatný motor ovládá snímač vzdálenosti a ramena páky, která drží dotykový snímač a snímač barev. Zásobník na pamlsky je pevný.
Robot je naprogramován tak, aby fungoval jako doručovatel, například bezplatné pamlsky, podle následujícího algoritmu chování. Robot doprovází svůj pohyb přímou větou: „Jsem robot Alpharex, nabízím pamlsek zdarma!“ Osoba, která chce s robotem navázat kontakt, ho může zastavit gestem. Po zastavení robot řekne větu: "Pomozte si a stiskněte tlačítko!" Po přijetí bonbonu musí osoba jednou stisknout tlačítko na znamení vděčnosti. Tři sekundy po zastavení bude robot pokračovat v pohybu. Když dojdou pamlsky (robot je naprogramován tak, aby měl na tácu určitý počet bonbónů), robot se rozloučí, rozsvítí se červený indikátor a robot se zastaví.
Program pro ovládání robota je napsán v prostředí NXT Programming 2.0.
Seznámení s programem Idol a zvládnutí základů programování.
Studenti v něm mohou získat praktické dovednosti při vytváření a ladění algoritmu při práci s takovými umělci, jako jsou Robot, Kreslíř, Vodnář, Kobylka, Želva.
Při studiu jedné z nejobtížnějších částí informatiky, „algoritmizace a programování“.
Účel rozvoje :
Stažení:
Náhled:
Metodologický vývoj v informatice.
Téma: „Robot v programu KuMir v hodinách informatiky“
učitel techniky "Informatika a ICT"
Vysvětlivka
Rozvojový cíl: studium možností programování na příkladu konkrétního Robot performera s využitím prostředí KUMIR; poskytnout praktické dovednosti při práci s umělcem.
Metodický vývojsestavené pro hodiny informatikyCvičte na počítači: práce s vyučujícím algoritmem; sestavování lineárních, větvících a cyklických algoritmů pro řízení exekutorů; sestavování algoritmů se složitou strukturou; použití pomocných algoritmů (procedury, podprogramy).
Studenti by měli vědět:
- co je to umělec; SKI Robot, prostředí robota;
- co je algoritmus;jaké jsou hlavní vlastnosti algoritmu;
- způsoby zápisu algoritmů: vývojové diagramy, výukový algoritmický jazyk;základní algoritmické struktury: následující, větvení, smyčka; struktur
- algoritmy; ⇒ přiřazení pomocných algoritmů; technologie pro konstrukci složitých algoritmů:
Studenti by měli být schopni:
- pochopit popisy algoritmů v tréninku algoritmický jazyk;
- provést trasování algoritmu pro známého interpreta;
- vytvořit lineární, větvené a cyklické řídicí algoritmy pro robota; zvýraznění dílčích úkolů; definovat a používat pomocné algoritmy.
Lekce 1 (2 hodiny) Lekce 1.
Performer Robot.Exekutorský příkazový systém.
Plán lekce.
- Popis LYŽE interpreta, prostředí interpreta.
2. Analýza typických robotických algoritmů.
Během vyučování.
Podívejme se na popis umělce.
Prostředí umělce: Performer Robot může procházet labyrintem nakresleným v rovině rozdělené na buňky.
Lyžařský robot : jednoduché příkazy: nahoru, dolů, doleva, doprava, malovat.
Logické příkazy: (kontroly podmínek)
nahoře zdarma dole zdarma
vlevo volný pravý volný.
Logické spojky: AND, NOT, OR:
Příklad: (Není vlevo volné) nebo (Není vpravo volné)
Příkaz větve: příkaz smyčky:
Pokud je podmínka pak zatím žádná podmínka
Řada příkazů řada příkazů
to je vše kts
(V CMM z roku 2009 se příkazy robota lišily od příkazů známých dětem, což vedlo k zmatek :)
Příkaz větve: příkaz smyčky:
Pokud je podmínka pak nts pro tuto podmínku udělat
Řada příkazů řada příkazů
konec konec
Celkový pohled na okno programu Idol. Grafické prostředí robota:
V KIM demo verze 2010 formát týmu změněn na obvyklé
Postup pro vytvoření algoritmu:
1.Týmy Nástroje -Upravit výchozí prostředínakreslete stěny na poli robota a nastavte robota do výchozí polohy.
2.Týmy Robot - Změňte výchozí prostředíudržovat nové prostředí.
3.Týmy Vložit - Použijte robotaoznačte umělce.
4. V okně dokumentu zapište algoritmus pomocí nabídky Vložit.
5. Použití příkazů spouštění – spouštějte algoritmus nepřetržitě (nebo krok za krokem).
6. Zvažte výsledek provádění algoritmu a v případě potřeby jej odlaďte.
Lekce 1 (2 hodiny) Lekce 2.
Praktická práce "Kompilace lineárních algoritmů“.
Úkoly: 1. Robot na libovolném místě v poli. Namalujte buňku nad, pod a napravo od původní pozice.
- Robot na libovolném místě v poli. Posuňte robota o 4 pole doprava a vybarvěte je.
- Vytvořte nové výchozí prostředí nakreslením čtverce o straně 4 čtverců na pole. Uložte nastavení jako výchozí.
- Vytvořte nové výchozí prostředí nakreslením koridoru na pole s průchody ve zdech. Uložte prostředí jako obst2.fil. Změňte výchozí prostředí na nově vytvořené.
Lekce 2 (2 hodiny) Lekce 1.
Předmět : Větvení a postupné zpřesňování algoritmu.
Analýza úloh CMM pomocí robota.
používat robota
alg kim 2009
začátek
není-li svobodný zdola
pak doprava
Všechno
není-li svobodný zdola
pak doprava
Všechno
není-li svobodný zdola
pak doprava
Všechno
ošidit
používat robota
alg kim 2010
začátek
není-li svobodný zdola
pak doprava
Všechno
není-li svobodný zdola
pak doprava
Všechno
není-li svobodný zdola
pak doprava
Všechno
ošidit
Atd. otrok. č. 14. Kompilace a ladění větvících algoritmů
Úkoly. Viz příloha.
Lekce 3 Cyklické algoritmy. Lekce 1-2
Cílová: odhalit podstatu konceptu cyklu v algoritmech, ukázat formy záznamu cyklů v algoritmech, dát dovednosti při vytváření a záznamu cyklických algoritmů.
Atd. otrok. č. 15. Kompilace a ladění cyklických algoritmů
1.Vytvořte algoritmus, který vybarví všechny vnitřní buňky sousedící se stěnou.
používat robota
alg
začátek
nts právo je prozatím zdarma
přemalovat; že jo
kts
dno je prozatím volné
přemalovat; dolů
kts
nts ještě není osvobozena zdola
přemalovat; vlevo, odjet
kts
ošidit
2. Vytvořte algoritmus, který vykreslí všechny buňky mezi robotem a zdí. Vzdálenost ke zdi není známa.
používat robota
alg
začátek
nts právo je prozatím zdarma
že jo; přemalovat
kts
ošidit
3. Vytvořte algoritmus, který vybarví všechny buňky umístěné mezi dvěma stěnami.
používat robota
alg uch3
začátek
nts ještě (nesvobodný shora) nebo (ne svobodný zdola)
že jo
if (ne svobodný shora) a (ne svobodný zdola)
Že
přemalovat
Všechno
kts
ošidit
4. Vytvořte algoritmus, který vykreslí všechny buňky kolem obdélníkové stěny.
alg uch4
začátek
přemalovat;nahoru
nts není na pravé straně ještě volný
přemalovat;
kts
přelakovat; správně
nts ještě není osvobozena zdola
přemalovat;vpravo;
kts
přebarvit; dolů
nts ještě není volný vlevo
přelakovat;dole;
kts
přelakovat; vlevo
nts není na vrcholu ještě zdarma
přemalovat; vlevo, odjet;
kts
ošidit
používat robota
alg uch5
začátek
že jo
nts ještě není osvobozena zdola
přemalovat; že jo
kts
přemalovat; dolů
levá je prozatím volná
přemalovat; vlevo, odjet
kts
nts ještě není volný vlevo
přemalovat; dolů
kts
přemalovat;zleva;přemalovat; nahoru;
nts zdarma nahoře
přemalovat; nahoru
kts
nts není na vrcholu ještě zdarma
přemalovat; vlevo, odjet
kts
ošidit
Lekce 4 Lekce 1
Pomocné algoritmy.
Cílová: představit koncept hlavního a pomocného algoritmu; vysvětlit pravidla pro použití pomocného algoritmu; analyzovat příklady algoritmů pomocí pomocných.
Plán lekce
1.Zavedení nových pojmů (hlavní a pomocné algoritmy, volání) a vysvětlení nových pojmů.
2. Analýza příkladů řešení úloh pomocí pomocného algoritmu.
Při řešení některých problémů je vhodné je rozdělit na menší dílčí úkoly, z nichž každý může být formulován jako samostatný algoritmus. V tomto případě je nejprve zkompilován tzv. hlavní algoritmus, ve kterém se volání pomocných algoritmů používají k řešení dílčích úloh, které se přidávají později. Toto řešení se nazývámetoda sekvenčního zpřesňování.Umožňuje skupině programátorů pracovat na projektu, přičemž každý řeší svůj vlastní dílčí úkol.
V procesu řešení problému lze každý pomocný algoritmus v případě potřeby rozdělit na menší pomocné algoritmy.
Zavolá se příkaz k provedení pomocného algoritmu výzva a je zapsán v těle hlavního algoritmu.
Stejný algoritmus lze považovat za hlavní a pomocný ve vztahu k ostatním algoritmům. V algoritmickém jazyce se nejprve zapisuje hlavní algoritmus a pomocné se zapisují v řadě.
Úkol 1:
Robot je v levém horním rohu pole. Nejsou zde žádné stěny ani malované cely. Vytvořte algoritmus pomocí pomocného algoritmu, který nakreslí čtyři křížky na jednu vodorovnou čáru. Konečná pozice robota může být libovolná.
Řešení
Analýza na desce:
Úkol 2. Robot je v levém horním rohu pole. Nejsou zde žádné stěny ani malované cely. Vytvořte algoritmus, který vykreslí šachovnicově čtverec 8 x 8. Konečná pozice robota může být libovolná.
Lekce 4 Lekce 2
Praktická práce na PC „Řešení problému pomocí pomocných algoritmů“.
cílová : vštípit praktické dovednosti při konstrukci algoritmů pomocí metody sekvenčního zpřesňování.
Plán lekce
1. Úloha probíhá výhradně na PC. Studenti dostávají úkoly a plní je v prostředí softwaru Idol. Výsledky práce se ukládají jako soubory pro pozdější ověření.
Problém 1 . Robot je v levém dolním rohu pole. Nejsou zde žádné stěny ani malované cely. Vytvořte algoritmus, který nakreslí 6 svislých pruhů stejné délky do 6 buněk. Konečná pozice robota může být libovolná.
Problém 2 .Pomocí pomocných vytvořte algoritmus pro malování buněk, které tvoří číslo 1212.
Domácí práce: Vymyslete algoritmus, který nakreslí následující obrázek: K vyřešení problému použijte dva pomocné algoritmy.
Lekce 5 Lekce 1-2
Test
"Vytvoření algoritmu v prostředí Robot exekutor."
Cílová: otestovat získané znalosti o tvorbě a schopnosti analyzovat algoritmy v prostředí softwaru Idol.
Úkoly pro zkušební práce jsou rozděleny podle úrovně obtížnosti a zahrnují 3 úkoly s vystupujícím Robotem (úloha 1 a 2 - na větvení a smyčky, úloha 3 - na použití pomocného algoritmu.) Texty úloh jsou uvedeny v příloze.
Počáteční a konečné situace a vytvořené algoritmy jsou zaznamenány jako soubor.
Známka se uděluje podle náročnosti úkolu. Student má právo volby typu zadání.
A dnes budeme mluvit o cyklech. Pojďme zjistit, co je cyklus a jak naučit našeho robota provádět cyklické algoritmy.
Tak, co je cyklus? Představte si, že jsme na hodině tělesné výchovy a stojíme před úkolem udělat 7 dřepů. Tato úloha může být napsána jako lineární algoritmus a pak bude vypadat nějak takto:
udělat dřep
udělat dřep
udělat dřep
udělat dřep
udělat dřep
udělat dřep
udělat dřep
To znamená, že jsme příkaz „udělej dřep“ opakovali 7krát. Má smysl psát 7 stejných příkazů? Možná bude jednodušší dát příkaz udělat 7 dřepů? Samozřejmě je to jednodušší a správnější. Toto je cyklus. Sami si můžete pamatovat příklady cyklů ze života – je jich poměrně hodně.
Tím pádem lineární algoritmus , kde se opakují stejné příkazy můžeme zařídit tak jako cyklický algoritmus - takhle:
opakujte 7krát
udělat dřep
konec cyklu
Takto jsme navrhli cyklus v jazyce, který jsme vymysleli. Robot performer má také schopnost zaznamenávat cykly. Navíc, cykly jsou různé. Volba, na kterou jsme se právě podívali smyčka s počítadlem nebo smyčka s parametrem.
Typy cyklů.
Smyčka s počítadlem.
Smyčka s počítadlem používá se, když je předem známo, kolik opakování je třeba provést. Ve výše uvedeném příkladu s dřepy je tomu přesně tak.
Abyste mohli napsat smyčku s čítačem pro exekutor, musíte znát jeho syntaxi. A on je takový:
nc<počet opakování>krát
<команда 1>
<команда 2>
…
<команда n>
Zde musíme určit počet opakování (počet) a příkazy, které se budou opakovat. Volají se příkazy, které se opakují ve smyčce tělo smyčky.
Podívejme se na to na příkladu.
Zpočátku byl Robot v levé horní buňce.
Nejprve vyřešme problém lineárně. V tomto případě překreslíme aktuální buňku a posuneme 1 buňku doprava a program bude vypadat takto:
používat robota
alg
začátek
přemalovat
že jo
přemalovat
že jo
přemalovat
že jo
přemalovat
že jo
přemalovat
že jo
přemalovat
že jo
přemalovat
že jo
Jak vidíte, příkazy malovat a doprava se opakují 7krát. Pojďme nyní přepsat program pomocí smyčky. Mimochodem, pro vložení cyklu do vašeho programu můžete přejít do nabídky Vložit vybrat předmět tsk-tsk-tsk nebo stiskněte jednu z kombinací kláves Esc, P(ruské písmeno R) popř Esc, H(latinské písmeno H). navíc tlačítka musí být stisknuta postupně- nejprve Esc, uvolněte jej a teprve potom P nebo H.
Tak tady je náš smyčkový program bude vypadat takto:
používat robota
nts 7krát
přemalovat
že jo
Pokud to spustíme, uvidíme, že výsledek bude stejný – 7 vyplněných buněk. Program se však zkrátil a z algoritmického hlediska je mnohem inteligentnější!
Jako zahřátí a posílení navrhuji, abyste si sami napsali program pro Robota, který nakreslí čtverec o straně 7 buněk. Samozřejmě pomocí smyčky. Čekám na řešení v komentářích.
Podmíněná smyčka.
Při řešení úlohy 19 Státní akademické informatiky v informatice s robotem použití smyčky s čítačem nebude fungovat. Protože pole je zde zpravidla nekonečné a stěny nemají konkrétní délku. U smyčky s čítačem tedy nebudeme schopni určit počet opakování. Ale to nevadí – pomůže nám to smyčka s podmínkou.
Vraťme se k tělesné výchově a změňme problém. Někdo totiž možná nezvládne 7 dřepů, zatímco jiný 27. Dá se s tím při tvorbě cyklu počítat? Rozhodně. Teprve nyní použijeme nikoli počítadlo (počet opakování), ale podmínku. Než se unavíte, udělejte například dřepy. V tomto případě člověk neudělá konkrétní počet dřepů, ale bude dřepovat, dokud se neunaví. A náš cyklus v abstraktním jazyce bude mít následující podobu:
sbohem neunavený
udělat dřep
konec cyklu
Slova nejsou v našem případě unavená – to je podmínka. Když je true, smyčka se provede. Pokud je false (unavený), tělo smyčky se neprovede. Robot má několik podmínek
zdarma nahoře
zdarma zespodu
ponechán volný
zdarma vpravo
stěna nahoře
zeď dole
levá stěna
stěna vpravo
Ale v podmínkách úkolu 19 GIA jsou uvedeny pouze první 4. Takže je pouze použijeme.
Nyní vyřešme další úkol pro Robota – kreslení svislá čára Od levého k pravému okraji pole používám smyčku s podmínkou. Zpočátku je robot umístěn v levém horním rohu.
Nejprve formulujme verbální algoritmus— to znamená, že slovy popíšeme, co Robot potřebuje udělat. Tento algoritmus bude znít nějak takto:
« Zatímco je napravo volné místo, udělejte krok doprava a vymalujte buňku »
Výsledkem je, že Robot proběhne všemi buňkami napravo a bude je malovat, dokud nebude napravo zeď.
Zdrojový kód našeho programu pro robota bude vypadat nějak takto:
používat robota
nts právo je prozatím zdarma
že jo
přemalovat
V důsledku spuštění tohoto programu uvidíme následující obrázek:
Naučili jsme se to žádat pro další práci. Nyní přejděme přímo ke kompilaci algoritmů pro robota pomocí jednoduchých příkazů.
Pokud dáváte přednost informacím ve formátu video tutoriálu, pak je na webu video tutoriál
Každý účinkující musí mít příkazový systém ( LYŽE — exekutorský příkazový systém). Exekutorský příkazový systém- sada všech příkazů, které může umělec provést. Jako příklad uveďme vycvičeného psa. Ví, jak provádět některé povely – „Sedni“, „Lehni“, „Nablízku“ atd. Toto je její systém povelů.
Jednoduché příkazy robota
Náš robot má také příkazový systém. Dnes se podíváme na jednoduché příkazy robota. Je jich celkem 5:
- nahoru
- vlevo, odjet
- že jo
- přemalovat
Výsledek provádění těchto příkazů je jasný z jejich názvů:
- nahoru— přesunout robota o jednu buňku nahoru
- dolů— posuňte robota o jednu buňku dolů
- vlevo, odjet— posuňte robota o jednu buňku doleva
- že jo— posuňte robota o jednu buňku doprava
- přemalovat— přebarvit aktuální buňku (buňku, ve které se robot nachází).
Tyto příkazy lze psát z klávesnice nebo můžete použít horké klávesy (jejich stisknutím se příkazy vloží automaticky):
- nahoru - uniknout, nahoru (šipka nahoru)
- dolů - uniknout, dolů (šipka dolů)
- doleva - uniknout, doleva (šipka doleva)
- vpravo - uniknout, vpravo (šipka vpravo)
- přemalovat – Útěk, Prostor (prostor)
Vezměte prosím na vědomí, že musíte zadat požadovanou kombinaci klávesových zkratek ne tak, jak jsme zvyklí! Jsme zvyklí mačkat klávesy současně, ale tady je potřebujeme stiskněte postupně. Chcete-li například zadat příkaz nahoru, musíte stisknout klávesu Escape, uvolnit ji a poté stisknout šipku nahoru. Toto je třeba mít na paměti.
Nyní jsme připraveni napsat první algoritmus pro robota. Navrhuji začít s jednoduchým - nakreslete čtverec o straně 3 buněk. Jít!
Pojďme spustit Idol, ho. Mohu začít psát program? Samozřejmě že ne! Nebyly! Pojďme na to. Doporučuji použít tento:
Nyní je vše připraveno. Začněme psát program. Zatímco ona vypadá takhle
Odstranění symbolu „|“. a nazvěte náš algoritmus „čtverec“
Navrhuji nakreslit čtverec pohybem po směru hodinových ručiček. Nejprve vymalujeme aktuální buňku zadáním příkazu přemalovat. Pak uděláme krok doprava a znovu natřeme celu. A ještě jednou vykročte doprava a přemalujte.
Zkusme program spustit a uvidíme, co se stane. Pro spuštění stiskněte F9 nebo tlačítko na panelu nástrojů
Ve výsledku bychom měli vidět takový obrázek
Pokud se vám takové okno robota nezobrazí, klikněte na panelu nástrojů na „ Zobrazit okno robota"nebo v nabídce Robot vyberte " Zobrazit okno robota". Pokračujme dále.
Nyní se přesuneme dolů a vybarvíme pravou stranu čtverce:
dolů
přemalovat
dolů
přemalovat
Pak jdeme doleva a namalujeme spodní okraj čtverce
vlevo, odjet
přemalovat
vlevo, odjet
přemalovat
Zbyla nám jedna nevybarvená buňka. Pojďme to přelakovat
nahoru
přemalovat
Vše je připraveno! V důsledku toho náš program vypadá takto:
používat robota
alg Náměstí
začátek
přemalovat
že jo
přemalovat
že jo
přemalovat
dolů
přemalovat
dolů
přemalovat
Ovládání exekutora robota v systému KUMIRRobot existuje v určitém prostředí (pravoúhlé kostkované pole). Mezi některými buňkami pole mohou být stěny. Některé buňky mohou být přetřeny (obr. 3.11).
Robot zabírá přesně jednu buňku pole.
Pomocí příkazů nahoru, dolů, doleva a doprava se robot přesune do sousední buňky v naznačeném směru. Pokud stojí v cestě zeď, dojde k poruše - zobrazí se zpráva, že není možné provést další příkaz.
Na příkaz malovat robot vybarví buňku, ve které stojí. Pokud již byla buňka přetřena, bude přebarvena znovu, ačkoli nedojde k žádným viditelným změnám.
Robot může provádět pouze správně napsané příkazy. Pokud místo příkazu dolů zapíšete, robot tomuto zadání nerozumí a okamžitě oznámí chybu.
O chyby: 1 syntaktické; 2. logické
Popisy situací jsou uloženy v textové soubory speciální formát (format.fil).
Aktuální- prostředí, ve kterém se robot nachází tento moment(včetně informací o poloze robota).
Začínající- prostředí, ve kterém je robot nucen být umístěn na začátku provádění programu využívajícího robota.
Operační postup:
Soubor startovací prostředí podle problémových podmínek:
2. Uveďte dodavatele:
Nabídka Vložit → Použít robota
3. Napište algoritmus pro řešení problému.
4. Spusťte algoritmus (Menu Provedení → Spustit nepřetržitě /F9)
Řídicí systém robota v systému KUMIR
tým |
Akce |
nahoru |
Robot se posune o 1 pole nahoru |
dolů |
Robot se posune o 1 pole dolů |
vlevo, odjet |
Robot se posune o 1 pole doleva |
že jo |
Robot se posune o 1 pole doprava |
přemalovat |
Robot maluje buňku, ve které je |
zdarma vpravo |
Robot kontroluje provedení příslušného jednoduchý podmínky |
ponechán volný |
↓ |
zdarma nahoře |
↓ |
zdarma zespodu |
↓ |
cela je vymalována |
↓ |
klec je čistá |
↓ |
Cyklické algoritmy
Cyklus– organizace opakování akcí při splnění některé podmínky .
Tělo smyčky je soubor opakovatelných akcí.
podmínka - logický výraz (jednoduchý nebo složitý (složený))
Typy cyklů:
1.Smyčka „Opakujte n-krát“ 2. Smyčka „Dokud“
nts nkrát nts zatím
. . Tělo smyčky. . Tělo smyčky
kts kts
Příklad: nts zatím zdarma vpravo
Celkový pohled na cyklus „Opakujte n-krát“:
OPAKOVÁNÍ n KRÁT
KONEC
kts
Celkový pohled na cyklus „zatímco“:
UDĚLEJ TO BYE
KONEC
Složené podmínky jsou tvořeny z jednoho nebo více jednoduché podmínky a funkční slova A NEBO NE.
Složený stav A A B(kde A, B jsou jednoduché podmínky), je splněna, když je splněna každá ze dvou jednoduchých podmínek v něm obsažených.
Ať A - zdarma nahoře, V - zdarma vpravo, pak složená podmínka A A B- zdarma nahoře a zdarma vpravo.
Složený stav A NEBO B splněno, je-li splněna alespoň jedna ze dvou jednoduchých podmínek v něm obsažených: nahoře zdarma NEBO vpravo zdarma
Složený stav NE A- splněno, když podmínka A není splněna.
Příklad: Nechť A je barevná buňka (jednoduchá podmínka).
P Kontrola složeného stavu NE A:
a) A – vyplněno, NE A (NEŠINOVÁNO) – nevyplněno.
b) A – nevyplněno, NE A (NEŠtínováno) – vyplněno.
Příkaz větve
Větvení - forma organizace úkonů, při které se v závislosti na splnění či nesplnění nějaké podmínky provádí buď ten či onen sled úkonů.
Obecný pohled na příkaz IF:
LI ŽE V OPAČNÉM PŘÍPADĚ
KONEC
V jazyce ICON:
Úplné větvení: Neúplné větvení:
Li Že
Li Že
v opačném případě
všechno všechno
Pomocný algoritmus- algoritmus, který řeší nějaký dílčí úkol hlavního problému.
V systému KUMIR jsou pomocné algoritmy zapsány na konci hlavního programu (po funkční slovo ošidit), jsou volány ke spuštění v hlavním programu podle jména.
V průzkumy a úkoly
1. Zadejte všechny algoritmy ze tří příkazů, které přesunou robota z jeho původní pozice do buňky B.
Existuje pro tento úkol algoritmus, ve kterém robot:
a) dva kroky; b) čtyři kroky; c) pět kroků; d) sedm kroků?
Petya sestavil algoritmus, který přenese robota z buňky A do buňky B natřením některých buněk. Co by měl Kolja s tímto algoritmem udělat, aby získal algoritmus, který přenese robota z B do A a vybarví stejné buňky?
7. Jsou známy dva pomocné robotické algoritmy
Nakreslete, co se stane, když robot provede následující základní algoritmy:
A) nts 5krát vzor_1 že jo; že jo; |
b) nts 7krát vzor_2 že jo; že jo |
PROTI) že jo; že jo; že jo nahoru; nahoru že jo; že jo; že jo dolů; dolů |
G) že jo; že jo že jo; že jo |
8. Vytvořte algoritmy, pod jejichž kontrolou bude robot malovat označené buňky:
![](https://i0.wp.com/nenuda.ru/nuda/167/166713/166713_html_m7b310a4a.jpg)
![](https://i2.wp.com/nenuda.ru/nuda/167/166713/166713_html_m25c3291a.jpg)
10. Je známo, že někde napravo od Robota je plná buňka.
S opusťte algoritmus, pod jehož kontrolou Robot vybarví řadu buněk až k vybarvené buňce a vrátí se do původní polohy.
11. Je známo, že Robot se nachází vedle levého vchodu do horizontální chodby.
12. Je známo, že Robot je někde ve vodorovné chodbě. Žádná z cel na chodbě není přemalována.
Vytvořte algoritmus, pod jehož kontrolou Robot vybarví všechny buňky této chodby a vrátí se do původní polohy.
13. V řadě deseti buněk napravo od robota jsou některé buňky stínované.
S opusťte algoritmus, který maluje buňky:
a) pod každou zastíněnou buňkou;
b) nad a pod každou zastíněnou buňkou.
14. Co lze říci o správnosti následujícího fragmentu algoritmu?
nts zatím cela je vymalována
LI zdarma vpravo ŽE
že jo; přemalovat
Na ts
15. Napište program, pomocí kterého se Robot dostane do buňky B ve všech třech bludištích.
1
![](https://i2.wp.com/nenuda.ru/nuda/167/166713/166713_html_m153e0ebf.jpg)
Z Úspěchy GIA
Chodba 1. Robot je umístěn někde ve vertikální chodbě. Žádná z cel na chodbě není přemalována. Vytvořte algoritmus, pod jehož kontrolou Robot vybarví všechny buňky této chodby a vrátí se do původní polohy.
NA
NutnéDáno
chodba2. Robot je umístěn v horní buňce úzké vertikální chodby. Šířka chodby je jedna buňka, délka chodby může být libovolná.
Napište algoritmus pro robota, který vybarví všechny buňky uvnitř chodby a vrátí robota do původní polohy. Například pro výše uvedený obrázek musí robot překreslit následující buňky (viz obrázek):
V nekonečném poli je dlouhá vodorovná stěna. Délka zdi není známa. Robot je v jedné z cel přímo nad zdí. Počáteční poloha robota je také neznámá. Jedna z možných pozic:
![](https://i0.wp.com/nenuda.ru/nuda/167/166713/166713_html_m143dfc65.png)
![](https://i2.wp.com/nenuda.ru/nuda/167/166713/166713_html_mcb4f12a.png)
Nutné
Dáno
Napište algoritmus pro robota, který vybarví všechny buňky umístěné nad stěnou a přilehlé k ní, bez ohledu na velikost stěny a počáteční polohu robota. Například pro výše uvedený obrázek musí robot překreslit následující buňky:
Konečná pozice robota může být libovolná. Při provádění algoritmu by neměl být robot zničen.
Nekonečné pole má dlouhou kolmou stěnu. Délka zdi není známa. Robot je v jedné z klecí umístěných přímo napravo od zdi. Počáteční poloha robota je také neznámá. Jedna z možných pozic robota je znázorněna na obrázku (robot je označen písmenem „P“): Napište algoritmus pro práci, který vybarví všechny buňky přiléhající ke zdi: vlevo, počínaje shora nenatřené jeden a přes jeden; vpravo, počínaje od spodního stínovaného a přes jeden. Robot musí malovat pouze buňky, které vyhovují tento stav. Například pro výše uvedený obrázek musí robot vyplnit následující buňky (viz obrázek): Konečné umístění robota může být libovolné. Algoritmus musí vyřešit problém pro libovolnou velikost stěny a jakoukoli platnou výchozí pozici robota. Při provádění algoritmu by neměl být robot zničen.
Napište algoritmus pro robota, který vybarví všechny buňky umístěné nalevo od svislé stěny a nad vodorovnou stěnou a přilehlé k nim. Robot musí malovat pouze buňky, které splňují tuto podmínku. Například pro obrázek výše musí robot vybarvit následující buňky (viz obrázek).
N Napište algoritmus pro robota, který maluje buňky sousedící se stěnou, nahoře a dole, počínaje zleva a každou druhou. Robot musí malovat pouze buňky, které splňují tuto podmínku. Například pro daný obrázek a) Robot musí překreslit následující buňky (viz obrázek b).
Konečná pozice robota může být libovolná. Algoritmus musí vyřešit problém pro libovolnou velikost stěny a jakoukoli přijatelnou počáteční polohu robota.
R | |||||
Nekonečné pole má dlouhou kolmou stěnu. Délka zdi není známa. Robot je v jedné z buněk umístěných přímo nalevo od zdi. Počáteční poloha robota je také neznámá. Jedna z možných poloh robota je znázorněna na obrázku (robot je označen písmenem „P“):
vše vlevo;
vpravo, počínaje shora nenatřeným a přes jeden.
B 1102_GIA2011
Nekonečné pole má dvě vodorovné stěny. Délka stěn není známa. Vzdálenost mezi stěnami není známa. Robot je umístěn nad spodní stěnou v kleci umístěné na jejím levém okraji. Napište algoritmus pro robota, který vybarví všechny buňky umístěné nad spodní stěnou a pod horní stěnou a přilehlé k nim. Robot musí malovat pouze buňky, které splňují tuto podmínku. Například pro výše uvedený obrázek musí robot vybarvit následující buňky (viz obrázek):
Konečné umístění robota může být libovolné. Algoritmus musí vyřešit problém pro libovolnou velikost pole a jakékoli přípustné uspořádání stěn uvnitř obdélníkového pole. Při provádění algoritmu by neměl být robot zničen.
V 1103_GIA_2011
Na nekonečném poli je vodorovná stěna. Délka zdi není známa. Svislá stěna neznámé délky se táhne dolů z pravého konce stěny. Robot je umístěn nad vodorovnou stěnou v kleci umístěné na jejím levém okraji. Obrázek ukazuje jeden z možné způsoby umístění zdí a robota (robot je označen písmenem „P“).
Napište algoritmus pro robota, který vybarví všechny buňky umístěné nad vodorovnou stěnou a napravo od svislé stěny a přilehlé k nim. Robot musí malovat pouze buňky, které splňují tuto podmínku. Například pro obrázek výše musí robot vybarvit následující buňky (viz obrázek).