Promluvme si dnes 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ů. Tento úkol lze formalizovat 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 7x opakovali povel udělat dřep. Má smysl psát 7 stejných příkazů? Možná by bylo jednodušší dát příkaz. udělat 7 dřepů? Určitě jednodušší a správnější. Toto je cyklus. Sami si pamatujete příklady cyklů ze života – není jich málo.

Takto lineární algoritmus, kde se opakují stejné příkazy, můžeme vydat ve formě cyklického algoritmu- víceméně takto:

opakujte 7krát

udělat dřep

konec cyklu

Takže v jazyce, který jsme vymysleli, jsme navrhli cyklus. Robot performer má také schopnost zaznamenávat cykly. Navíc, cykly jsou různé.. Volba, kterou jsme právě zvažovali, se nazývá smyčka s počítadlem nebo smyčka s parametrem.

Typy cyklů.

Cyklus 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 v cyklu opakují 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
brzy

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 k malování přes 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 použít menu Vložit vybrat předmět nc-time-kc nebo stiskněte jednu z klávesových zkratek Esc, P(ruské písmeno Р) popř Esc, H(latinské písmeno H). A klávesy musí být stisknuty postupně- nejprve Esc, uvolněte jej a teprve potom P nebo H.

Tak tady je naše program cyklu bude vypadat takto:

používat robota

nc 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 konsolidaci navrhuji samostatně napsat program pro robota, který nakreslí čtverec o straně 7 buněk. Samozřejmě pomocí cyklu. Čekání na řešení v komentářích.

Podmíněná smyčka.

Při řešení problému 19 GIA v informatice s robotem nebude fungovat použití smyčky s čítačem. Protože tam je pole obvykle 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 úkol. Někdo přeci nemusí udělat 7 dřepů, zatímco druhý jich je schopen udělat 27. Dá se s tím při tvorbě cyklu počítat? Samozřejmě. 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 naše smyčka v abstraktním jazyce bude vypadat takto:

sbohem neunavený

udělat dřep

konec cyklu

Slova nejsou v našem případě unavená – to je podmínka. Když je to pravda, cyklus se provede. Pokud je nepravdivá (unavená), tělo smyčky se neprovede. Robotický umělec má několik podmínek

horní volný

dno volné

ponechán volný

právo zdarma

horní stěna

spodní stěna

levá stěna

pravá stěna

Ale ve stavu problému 19 GIA jsou uvedeny pouze první 4. Použijeme tedy pouze je.

Nyní vyřešme další úkol pro Robota – kreslení svislá čára zleva doprava hranice pole používám smyčku s podmínkou. Zpočátku je robot v levém horním rohu.

Nejprve definujme 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 jste napravo, udělejte volně krok doprava a malujte přes celu »

V důsledku toho robot proběhne všemi buňkami doprava a bude přes ně malovat, dokud nebude zeď napravo.

Zdrojový kód našeho programu Robot bude vypadat nějak takto:

používat robota

nc, zatímco právo zdarma

že jo

přemalovat

V důsledku spuštění tohoto programu uvidíme následující obrázek:

Performer Robot. Pomocné algoritmy(2h)

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ého. Rozvinout praktické dovednosti v konstrukci algoritmů metodou sekvenčního zpřesňování.

Plán lekce

1.Zavedení nových pojmů (hlavní a pomocný algoritmus, volání) a vysvětlení nových pojmů.

2. Analýza příkladů řešení úloh pomocí pomocného algoritmu.

3. Praktická práce

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 navržen jako nezávislý 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. Tento druh ř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.

Jeden a tentýž algoritmus lze považovat za hlavní a pomocný ve vztahu k ostatním algoritmům. V algoritmický jazyk nejprve je napsán hlavní algoritmus a pomocné algoritmy jsou zapsány v řádku níže.

Úkol 1:

Robot je v levém horním rohu pole. Nejsou zde žádné stěny ani zastíněné cely. Sestavte algoritmus pomocí pomocného algoritmu a nakreslete č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 zastíněné cely. Napište algoritmus, který nakreslí šachovnicově čtverec 8 x 8. Konečná pozice robota může být libovolná.

Praktická práce na PC "Řešení problémů pomocí pomocných algoritmů"

Úkol 1 . Robot je v levém dolním rohu pole. Nejsou zde žádné stěny ani zastíněné cely. Napište algoritmus, který nakreslí 6 svislých pruhů stejné délky v 6 buňkách. Konečná pozice robota může být libovolná.

Úkol 2 . Pomocí pomocného programu napište algoritmus pro malování buněk, které tvoří číslo 1212.

Domácí práce : Vymyslete algoritmus, který nakreslí následující obrázek: Použijte dva pomocné algoritmy k vyřešení problému.

Metodická příručka pro učitele informatiky. Evgrafova Olga Vladimirovna, gymnasium č. 8 Kolomna, 2013 V procesu studia předmětu "Informatika a ICT" se studenti učí nejen informační kultuře (kultura kompetentní komunikace s počítačem, papírování, elektronická komunikace), ale také ovládají základy programování. Jedním z nejúspěšnějších tuzemských vývojů v této oblasti je programovací systém Kumir. Studenti v ní mohou získat praktické dovednosti při vytváření a ladění algoritmu při práci s umělci Robot a Draftsman. Výhodou tohoto systému je možnost psaní příkazů v ruštině ve školním algoritmickém jazyce a viditelnost výsledku provádění algoritmu. Systém KuMir je navržen na základě potřeb ruský systém vzdělání. Jeho vlastnosti:      volně distribuované; multiplatformní; nulové požadavky na zdroje; podporováno Ruskou akademií věd; mezi vývojáři jsou autoři mnoha učebnic a příruček o informatice;  Bezplatný program Shell Kumir lze nalézt na http://www.niisi.ru/kumir/. Bohužel autoři nových učebnic informatiky věnují nedostatečnou pozornost nebo tyto interprety obecně obcházejí. Současně vývojáři GIA a -1-

p. 2

USE zahrnuje zadání využívající údaje interpretů v zadáních písemek ke zkoušce. Téma se probírá v 9. ročníku v části "Algoritmizace a programování". Na prostudování tématu je vyhrazeno 9 hodin. Studenti by měli vědět: co je to performer; SKI Robot, středeční účinkující Robot; co je algoritmus; jaké jsou hlavní vlastnosti algoritmu; způsoby zápisu algoritmů: vývojové diagramy, výukový algoritmický jazyk; základní algoritmické konstrukce: sledování, větvení, smyčka; přiřazení pomocných algoritmů. Studenti by měli být schopni: porozumět popisům algoritmů ve výukovém algoritmickém jazyce; provést trasování algoritmu pro známého interpreta; sestavovat lineární, větvené a cyklické řídicí algoritmy pro spouštěcí robot; přidělovat dílčí úkoly; definovat a používat pomocné algoritmy. Tematický plán lekce: č. p / p 1. 2. 3. 4. 5. Počet teohodin riya Performer Robot. Exekutorský příkazový systém. Kompozice1 0,5 Lineární algoritmy. Cyklické algoritmy. 3 1 Praktická práce č.1. Kompilace a ladění cyklických algoritmů. Větvení a sekvenční zpřesňování algoritmu. 2 1 Praktická práce č.2. Kompilace a ladění cyklických a větvených algoritmů. Pomocné algoritmy a podprogramy. 2 0,5 Př. otrok. číslo 3. „Použití pomocných algoritmů“. Test. “Vytvoření algoritmu v prostředí performera” Téma lekce Cvičení 0,5 2 1 1,5 1 Materiály pro lekce na téma “Trénink performer Robot”: -2-

p. 3

Lekce 1 Exekutorský příkazový systém. Robot se během provádění programu pohybuje v pravoúhlém šachovnicovém poli, mezi jehož buňkami mohou být umístěny stěny. Pole se na obrazovce vyvolá tlačítkem "Okno robota", které se nachází na nástrojové liště. Pole kódu robota. Robot je schopen vykonávat příkazy-rozkazy a příkazy-otázky. Příkazy-povely: vpravo, vlevo, nahoru, dolů, přebarvit. Pokud je v cestě zeď, příkaz nelze provést. K přímému ovládání robota použijte dálkový. Stisknutím tlačítek na dálkovém ovladači dává osoba příslušné příkazy a robot je vykonává. Pro ovládání programu nestačí vědět, které příkazy a v jakém pořadí provést. Tyto příkazy je také nutné zapisovat do podoby srozumitelné pro počítač, tzn. dát do podoby algoritmu. V nejjednodušším případě je algoritmus pro robota napsán následovně: Název algoritmu je posloupnost znaků nebo slov oddělených mezerami. První znak jména nesmí začínat číslicí. Správná jména: g, součet, obvod přezdívky, 12. dubna, dvanáctý duben, číslo_11_cl. „Správný“ název bude zvýrazněn modře. use Robot alg algorithm_name start sekvence příkazů end Pro lepší pochopení algoritmu v těle programu můžete použít komentáře. Komentáře začínají |. Pokud komentáře zahrnují více řádků, před každým řádkem musí být znak |. Komentáře nemají žádný vliv na průběh algoritmu. Příklad 1. Naprogramujte "Knight's move" (přesuňte robota z bodu A do bodu B). Počáteční stav: Program: Výsledek: Pravidla algoritmického jazyka umožňují napsat několik příkazů na jeden řádek oddělené středníkem. -3-

p. čtyři

Příklad 2. Je nutné přesunout robota z bodu A do bodu B. Dráhu, kterou musí robot projít, lze rozdělit do pěti stejných částí. Příkazy pro průchod každého úseku je vhodné seskupit do jednoho řádku - tím se zkrátí záznam algoritmu a stane se srozumitelnějším. Změna prostředí Robot. Abyste robota přinutili jednat v novém prostředí, musíte jej načíst pomocí následujících příkazů hlavní nabídky: Vyberte prvek „Robot“ „Změnit výchozí prostředí“ Otevřít požadovanou složku a vyberte soubor. Vytváření nového prostředí. Chcete-li vytvořit nové prostředí pro robota, musíte provést příkazy hlavní nabídky: Vyberte položku "Nástroje" "Upravit výchozí prostředí". V okně "Nastavení" vyberte prvek "Nastavení" "Nové nastavení" Nastavte počet řádků a sloupců. Umístěte stěny kliknutím myši a přesuňte robota do požadované buňky. Uložte prostředí pomocí příkazů: "Prostředí" "Uložit jako" Zadejte název souboru a složku pro umístění. Stiskněte tlačítko "Uložit". Přidat/Odebrat zeď – klikněte na hranici mezi buňkami. Vybarvit / Vymazat buňku - klikněte na buňku. Vložit / Odebrat bod - klikněte na buňku při stisknutí klávesa Ctrl. Nastavte záření, popisky - klikněte pravým tlačítkem myši. Pohybujte robotem - táhněte myší. "Spuštění" Spuštění programu. „Neustále běžet“ Samostatná práce na počítači: 1. Načtěte nové prostředí, přesuňte robota do bodu „B“, malujte podél bodů označených symbolem „tečky“: složka „Dílna pro robota“ „1“ úkol „ C“ (materiály ze stránek K. Polyakova http://kpolyakov.narod.ru), vytvořte program, otevřete okno Robot a spusťte program ke spuštění. Uložte program do své složky s názvem "1_B". 2. Vytvořte nové nastavení, uložte jej do své složky s názvem „Settings_1“. Vytvořte program pro nové prostředí a uložte jej do složky s názvem „nové_prostředí_1“. 3. **Vyřešte další problémy ze složky #1 workshopu. -4- B

p. 5

Lekce 2. Cyklické algoritmy. Cyklus N - krát. Opakovací úkol: Péťa vytvořil algoritmus pro Walk Robot. Kolja v něm vymazal jeden příkaz. Určete, který příkaz Kolja vymazal, pokud je známo, že se robot musí vrátit výchozí stav. Odpověď: vpravo použijte Robot alg Walk start. nahoru; doprava. ? . cesta dolů; vlevo, odjet; levý konec nc N krát · série příkazů kc Při sestavování algoritmů se často vyskytují případy, kdy je potřeba určitou sekvenci příkazů provést vícekrát za sebou. Například příklad číslo 2 minulé lekce. Pro zjednodušení zápisu algoritmu v takových případech můžete použít příkaz - "Opakovat N-krát". N je celočíselný výraz určující počet opakování. Když je algoritmus vykonán, sekvence příkazů se cyklicky opakuje stanovený početkrát. Toto číslo může být nula nebo dokonce záporné. Tyto případy nejsou považovány za chybné, pouze se tělo smyčky ani jednou neprovede a počítač okamžitě přejde k provedení příkazů napsaných za kts. Příklad 1. Je nutné přesunout robota z bodu A do bodu B. A B Příklad 2. Vybarvěte v řadě 16 buněk. Příklad 3. Vyplňte obdélník 5(řádky) x 6(sloupce). použijte Robot Alg Obdélník začátek nc 5 krát kc konec Smyčku lze umístit do další smyčky. Pak se nazývá vnořený. -5-

p. 6

Samostatná práce na počítači: Příklad 4. Přemístěme Robota z výchozí pozice do bodu označeného hvězdičkou a cestou malujeme buňky labyrintu. Vytvořte prostředí a program. Uložte soubory do své složky. Příklad 5. Přeneste robota z výchozí pozice na Základnu a přetřete buňky označené tečkou. Vytvořte prostředí a program. Uložte soubory do své složky. Příklad 6. Je nutné vést robota bludištěm z výchozí pozice do bodu A. Příklad 7. Je nutné vést robota chodbou z výchozí pozice do bodu A, přičemž se díváme do každé boční chodby. Příklad 8. Napište program pro malování buněk pole označeného *. Výchozí poloha robota je označena ikonou ◊. Příklad 9*. Stěny jsou vystaveny na poli umělce. Je nutné najít počáteční, optimální pozici interpreta a napsat program, jehož výsledkem budou vyplněné buňky (jak je znázorněno na obrázku). **Vytvářejte programy pomocí složky "Workshop for Robot" _ č. 2. -6-

p. 7

Lekce 3 Musíme se naučit, jak vytvořit univerzální algoritmy, které nebudou záviset na vzdálenosti mezi Robotem a zdí, na délce zdí. K tomu použijeme operátor new loop. nt while condition řada příkazů kts Při provádění cyklu počítač opakuje následující akce:  kontroluje podmínku;  pokud je podmínka splněna, provedou se příkazy těla smyčky a znovu se zkontroluje podmínka atd.  není-li podmínka splněna, je dokončeno provedení levé stěny volného cyklu, a provedeny příkazy, příkazy na pravé stěně pravé jsou volně zaznamenány po kts. spodní stěna spodní volná  podmínky cyklu (příkazy-otázky): horní stěna volná volná buňka naplněná buňka čistá Poznámky.  Pokud není podmínka splněna od samého začátku, pak se tělo smyčky neprovede ani jednou!  Provádění cyklu se nemusí dokončit, pokud je podmínka neustále splněna. Tato situace obvykle nastává v důsledku chyb v NC BYA na pravé straně volně kompilujících algoritmů. že jo; nalevo Příklad nekonečného algoritmu (vpravo není žádná zeď): Podmínky KC mohou být jednoduché a složené. Jednoduchou podmínkou je obvykle nějaká kontrola. Jako příklad může sloužit jakákoliv příkazová otázka robota. Složená podmínka je tvořena z několika jednoduchých podmínek pomocí servisních slov AND, OR, NOT. Pokud mezi jednoduché termíny znamená AND, pak aby byla splněna složená podmínka, je nutné, aby se obě jednoduché ukázaly jako pravdivé. Pokud je mezi jednoduchými podmínkami OR, pak ke splnění složené podmínky stačí, aby byla pravdivá alespoň jedna jednoduchá podmínka. Příklad 2. Robot Příklad 1. Aby se rakety označené robotem přesunuly na Základnu, musí se přebarvit. na obrázku. Délka zdi ani vzdálenost ke zdi nejsou známy. použijte Robot alg To Base brzy. nc, zatímco horní část je volná. . nahoru. kts. nts, ​​když je stěna nahoře. . doprava. kts. nahoru con -7-

p. osm

▪ Samostatná práce na počítači: Někde v poli Robot je zeď v podobě rohu, jejíž rozměry nejsou známy. Robot z libovolné buňky nalevo od zdi, ale vždy naproti ní, musí dosáhnout na zeď a přebarvit všechny buňky podél zdi za ní, jak je znázorněno na obrázku. ▪ Je nutné přesunout Robota z jeho výchozí pozice do bodu A a přitom malovat přes určené buňky pole. Rozměry stěn a vzdálenost mezi nimi mohou být libovolné. ▪ Kompilace programů pomocí složky Robot Workshop  Folder_4_Tasks_А_С_D  Folder_5_Tasks_A_B_C_D Lekce 4. Praktická práce №1. Cyklické algoritmy pro robota. Možnost 1 Úkol 1. Namalujte buňky umístěné vlevo od stěny nebo nahoře na stěně. Vzdálenost od robota ke zdi není známa. Délka stěn není známa. Vytvořte prostředí a napište program. Uložte soubory do své složky. R Úkol 2. Účinkující Robot je někde uvnitř omezené čtvercové oblasti. Délka strany čtverce není známa. Napište algoritmus pro robota, který vykreslí všechny buňky umístěné na úhlopříčce čtverce z levého horního do pravého dolního rohu. Vytvořte prostředí a napište program. Uložte soubory do své složky. Úkol 3. Přeneste interpreta z buňky A do buňky B, přičemž malujte přes označené buňky. Délka stěn a vzdálenost mezi nimi není známa. Vytvořte prostředí a napište program. Uložte soubory do své složky. -osm-

p. 9

Úkol 4. Je nutné přesunout Robota z výchozí pozice (◊) do bodu A a přitom malovat označené buňky pole. Rozměry stěn a vzdálenost mezi nimi mohou být libovolné. Úkol 5. Na nekonečném poli je žebřík. Počet kroků může být libovolný. Spodní vodorovná stěna pokračuje nekonečně vpravo, horní vodorovná stěna nekonečně vlevo. Robot je někde nad spodní vodorovnou stěnou. Natřete buňky umístěné podél svislé části schodů (viz obr.). Jakákoli konečná pozice robota. Vytvořte prostředí a napište program. Uložte soubory do své složky. Každý krok má velikost: 2 buňky vodorovně a 2 buňky svisle. Možnost 2 Úkol 1. Napište pro robota algoritmus, který vykreslí všechny buňky umístěné podél levé strany a nad spodními stranami obdélníku a přiléhající ke zdi. Vzdálenost od robota ke stěnám a délka stěn nejsou známy. Vytvořte prostředí a napište program. Uložte soubory do své složky. Úkol 2. Účinkující Robot je někde uvnitř omezené čtvercové oblasti. Délka strany čtverce není známa. Napište algoritmus pro robota, který vykreslí všechny buňky umístěné na úhlopříčce čtverce z pravého horního do levého dolního rohu. Vytvořte prostředí a napište program. Uložte soubory do své složky. Úkol 3. Přeneste interpreta z buňky A do buňky B, přičemž malujte přes označené buňky. Délka stěn a vzdálenost mezi nimi není známa. Vytvořte prostředí a napište program. Uložte soubory do své složky. -9-

p. deset

Úkol 4. Je nutné přesunout Robota z výchozí pozice (◊) do bodu A a přitom malovat označené buňky pole. Rozměry stěn a vzdálenost mezi nimi mohou být libovolné. Úkol 5. Na nekonečném poli je žebřík. Počet kroků může být libovolný. Spodní vodorovná stěna pokračuje nekonečně vlevo, horní vodorovná stěna nekonečně vpravo. Robot je někde nad spodní vodorovnou stěnou. Natřete buňky umístěné podél svislé části schodů (viz obr.). Jakákoli konečná pozice robota. Vytvořte prostředí a napište program. Uložte soubory do své složky. Každý krok má velikost: 2 buňky vodorovně a 2 buňky svisle. Lekce 5 Příkaz „if _ then _ else _ all“ Obecný pohled na příkaz: if podmínka pak akce 1 else akce 2 vše Struktura příkazu: po kontrole podmínky se provedou akce 1, pokud je podmínka pravdivá, jinak se provedou akce 2. Po že příkazy napsané za slovem vše. Větev může jinak chybět (neúplné větvení). V tomto případě příkaz vypadá takto: pokud podmínka, pak všechny akce. Pokud podmínka splněna není, pak příkazy zapsané za oficiální slovo Všechno. Příklad 1. Vytvořte program, který provede robota koridorem libovolné délky. Po cestě musí robot natřít všechny buňky, které pod sebou nemají zeď. Počet otvorů není znám. - deset -

p. jedenáct

Příklad 2. Přesuňte robota do bodu B a přetřete buňky označené tečkou. Délka zdi ani počet „slepých uliček“ není znám. použijte Robot alg To Base start nt while right free to right if top is free then up paint down all kc down end Příklad** Spočítejte, kolik stínovaných buněk je v koridoru (abyste to mohli provést, musíte analyzovat další konstrukce: integer count | popis proměnné celočíselného typu počet:= počet+1 | zvýšení proměnné o 1 výstupní počet | zobrazení hodnoty proměnné na obrazovce Samostatná práce na počítači: Vytvořte prostředí a vyřešte problém Úkol 1. Vytvořte algoritmus pro průchod robota prostředím: Úkol 2. Napište program, ve kterém robot překoná libovolný počet překážek a dostane se ke zdi. Překážky lze umístit kamkoli.-11-

p. 12

Úkol 3. Vybarvěte buňky označené tečkami. Úkol 4. Použijte robot alg K základně, začněte malovat přes nc, dokud se pravá neuvolní doprava, pokud je volná shora, pak nahoru; přemalovat; dolů jinak přemaluj přes všechny kc dolů con Úkol 5. Přemaluj buňky umístěné vedle zdí. Napište algoritmus, který vyplní všechny buňky mezi dvěma stěnami. Která zeď je vlevo, není známo. použijte Robot alg between_walls start nt dokud (není zdarma shora) nebo (not free from bottom) right if (not free from above) and (not free from bottom) pak přetřete všechny kc end použijte Robot alg uch5 start right nts dokud free zespodu; přebarvit doprava; dolů nts, dokud levá není volně přetřena; doleva kts nts, dokud levá není volně přemalována; malovat kts; vlevo, odjet; přemalovat; nahoru; nt, dokud není vršek volně natřený; nahoru kts nts, dokud nebude možné přetírat shora; vlevo kts con Úkol 6**. Robot je na začátku chodby. V chodbě jsou nahoře a dole slepé uličky neznámé délky, ale jejich umístění není naproti sobě. Délka chodby také není známa. Napište algoritmus pro malování všech slepých uliček a opuštění chodby. - 12 -

p. 13

použijte robot alg puffins brzy. nts ještě (horní stěna) nebo (spodní stěna). . doprava. . if (nahoře zdarma) a (spodní stěna) . . . pak. . . . nc, zatímco horní část je volná. . . . . nahoru; přemalovat. . . . kts. . . . nc, zatímco dno je volné. . . . . cesta dolů. . . . kts. . Všechno. . if (spodní volné) a (horní stěna). . . pak. . . . nc, zatímco dno je volné. . . . . cesta dolů; přemalovat. . . . kts. . . . nc, zatímco horní část je volná. . . . . nahoru. . . . kts. . Všechno; . kts; con Týmy zvýrazněné červeně se musí při výjezdu z koridoru zastavit. Lekce 6 Cyklické a větvené algoritmy pro robota. Řešení úloh pomocí KIM GIA. Komentář. Při sestavování algoritmů je třeba problém řešit v obecné podobě, tzn. tvar postavy je definován, ale délky stran, počet kroků a další parametry se mohou lišit. Program by měl fungovat pro jakoukoli postavu podobného druhu! Úkol 1. Vytvořte nastavení a napište algoritmus, který vykreslí všechny buňky umístěné napravo od svislých částí stěny. použijte robot alg task 1 start down; doprava. nc, zatímco horní část je volná. . vymalovat. kts. nc, dokud není vršek volný. . doprava. kts. nahoru. nc, dokud nebude levá část volná. . přemalovat; nahoru. kts con - 13 -

p. čtrnáct

použijte robot alg úkol 2 začátek. nts na pravé straně je zdarma. . doprava. kts. nc, dokud nebude právo volné. . nahoru. kts. doprava. nc, dokud nebude právo volné. . vymalovat; doprava. kts con Výška každého kroku je jedna buňka, šířka je 2 buňky. Úkol 2. Napište algoritmus, který vyplní všechny buňky nad kroky. Úkol 3. Překreslete všechny buňky umístěné nad stupni schodiště sestupně zleva doprava. použijte robot alg úkol 3 začátek. nc, zatímco dno je volné. . cesta dolů; vlevo, odjet; doleva. kts. nc, dokud nebude levá část volná. . přemalovat; doprava. . přemalovat; doprava. . cesta dolů. kts con Úkol 4. Vybarvěte buňky labyrintu. použijte Robot alg Labyrinth brzy. doprava. nts na pravé stěně. . přemalovat; nahoru. . přemalovat; nahoru. . přemalovat; doprava. . přemalovat; cesta dolů. . přemalovat; cesta dolů. . přemalovat; doprava. kts con Úkol 5** Účinkující je v libovolné cele, ale vždy naproti zdi (obrázek výše). V důsledku toho je nutné natřít buňky, jak je znázorněno na obrázku níže. - čtrnáct -

p. patnáct

použít robot alg Ukončit start. nc zatímco vpravo je volně vpravo; . kts. nc až do pravé stěny dolů; . kts. že jo; nahoru. nts ještě (stěna vlevo a volná nahoře) nebo (stěna nahoře a volná vpravo) nebo (stěna vpravo a volná dole) nebo (stěna dole a volná vlevo). . if (levá stěna) a (nahoře zdarma) . . . pak. přemalovat; nahoru. . Všechno. . if (horní stěna) a (pravá volná) . . . pak. . přemalovat; doprava. . Všechno. . pokud je vpravo stěna a dno je volné. . . pak. . přemalovat; cesta dolů; . . Všechno. . pokud je stěna dole a levá je volná. . . pak. . . přemalovat; vlevo, odjet; . . Všechno; . kts; con Lekce 7. Pomocné algoritmy 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 formalizován jako nezávislý 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. Tento způsob ř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. Příkaz k provedení pomocného algoritmu se nazývá volání a je zapsán v těle hlavního algoritmu. V algoritmickém jazyce je hlavní algoritmus napsán jako první a pomocný algoritmus je zapsán níže v řadě. Příklad 1 Zvažte nastavení z lekce #1. Robot musí být přenesen do buňky označené tečkou. použijte Robot alg Corridor start bypass; objížďka; objížďka; objížďka; bypass con alg bypass start up; nahoru; vpravo dolů; cesta dolů; pravý con - 15 -