Mokytojo užduotis – eiti šiuo keliu kartu su mokiniu, neapsidraudus nuo nesėkmių, o užkertant kelią nusivylimui dėl galimų sunkumų. Labai svarbu užsiėmimus organizuoti taip, kad vaikai per prasmingą veiklą atrastų sau naujų dalykų.
Kaip robotas padeda mokytis informatikos? Išskirsiu tik keletą informatikos temų, kuriomis remiasi robotika.
Tema „Failai ir failų sistema“.
Mokinys disponavo LEGO®NXT mikrokompiuteriu iš LEGO Mindstorms NXT Education edukacinio rinkinio. Kontroliuokite tai Failų sistemaįvyksta su standartinėmis komandomis, tačiau kadangi atminties kiekis nėra didelis, reikia nuolat stebėti reikalingos ir nereikalingos kontrolę. Norint įgarsinti roboto veiksmus, parodyti paveikslėlį, papildyti veikiančių programų biblioteką, reikia operuoti pagrindinėmis informatikos sąvokomis: failas, failo tipas, failo kelias, meniu, aplankas.
Tema „Informaciniai procesai“, „Informacijos kodavimas“.
Robotų rinkinyje yra jutikliai, kurie registruoja garso, lytėjimo ir vaizdo informaciją. Po skaitmeninimo informacija gali būti rodoma ekrane. Speciali mikrokompiuterio funkcija leidžia eksperimentuoti su jutikliais, varikliais, naudojant paruoštas paleisti programas. Po daugybės eksperimentų su jutikliais atsiranda supratimas: kodėl ultragarsinis atstumo jutiklis yra lėtesnis už infraraudonųjų spindulių šviesos jutiklį, kaip garsas paverčiamas skaitmeniniu kodu ir pan. Informacinių procesų ir informacijos kodavimo principų studijavimas leidžia giliau suprasti informacinių technologijų esmę.

Tema „Komunikacijos technologijos“.
LEGO®NXT mikrokompiuteris palaiko technologiją bevielis ryšys. Naudodami Bluetooth funkciją galite nustatyti bevielis ryšys tarp NXT mikrokompiuterio ir kitų įrenginių, turinčių „Bluetooth“ įrenginį, pvz., kitus NXT Mobilieji telefonai arba su kompiuteriais. Pagal nustatymą Bluetooth ryšys, galbūt: atsisiųsti programas iš kompiuterio nuotoliniu būdu; siųsti programas iš kitų įrenginių (ne iš kompiuterio), įskaitant NXT; siųsti programas tiek atskiriems NXT, tiek jų grupėms. Ši technologija leidžia valdyti robotą mobiliuoju telefonu.

Temos „Algoritmai. Algoritmų vykdytojas“, „Programavimo aplinka“.
Norėdami supažindinti su robotu, galite tiesiogiai užprogramuoti NXT įrenginį neprisijungę prie kompiuterio. Tiesiogiai ekrane, pagal penkių komandų šabloną, galite kurti paprasta programa ir užveskite kilpą. Tačiau neapsieinama be pagrindinių algoritminių struktūrų ir programavimo aplinkos kūrimo žinių. Būtent gebėjimas programuoti robotą daro jį universaliu atlikėju, galinčiu išspręsti įvairias užduotis. Turėtumėte pradėti mokytis programavimo technologijų nuo vizualinio programavimo aplinkos, tada pereiti prie galingesnės ir modernesnės įvykiais pagrįstos aplinkos.
Taigi, robotika reikalauja elementarių informatikos žinių, o neišsenkantis mokinio noras padaryti savo robotą „geriausiu“ verčia įgyti naujų žinių.
Kodėl robotą galima vadinti idealia mokymosi priemone? Nes ši priemonė leidžia sukurti mokymosi aplinką, atkuriančią natūralius vaiko siekius žaisti, kurti, bendrauti su bendraamžiais. Taigi galime pabrėžti robotikos, kaip ugdymo priemonės, pranašumus:
. Žinių įsisavinimas vyksta žaidimo metu.
. Roboto konstrukcija suteikia kūrybinės laisvės.
. Noras tobulinti savo darbą yra dauguma studentų.

Kaip pavyzdį norėčiau pateikti „Nemokamo maisto pristatymo roboto“ modelį, kurį sukūrė 6 klasės mokinys pagal užklasinės veiklos kursą „Programavimas robotu“. Robotas pagamintas iš LEGO MINDSTORMS NXT Education 9797 rinkinio, naudojant standartinį Alfarex 1.0 modelį, ir komplektuojamas su spalvų jutikliu, rodančiu roboto būseną ir skanėstų dėklą.
Darbo tikslas – pagal turimus išteklius įgyvendinti žmogaus eisenos modelį. Kiekvienos kojos judėjimą valdo variklis ir mechaninis pavarų bei svirčių mazgas. Viena svirtis judina koją aukštyn ir žemyn, kita – į priekį. Tokiu atveju kūnas nukrypsta link atraminės kojos, dėl to robotas išlaiko pusiausvyrą. Ši eisena vadinama „maišymu“
Atskiras variklis valdo atstumo jutiklį ir svirties svirtis, laikančias jutiklinį jutiklį ir spalvų jutiklį. Padėklas skanėstams fiksuojamas nejudėdamas.
Robotas yra užprogramuotas atlikti prekiautojo vaidmenį, pavyzdžiui, nemokamų skanėstų, pagal šį elgesio algoritmą. Robotas savo judėjimą tiesia linija palydi fraze: „Aš esu Alpharex robotas, aš tave gydau nemokamai! Asmuo, norintis susisiekti su robotu, gali jį sustabdyti gestu. Sustojęs robotas ištaria frazę: „Padėk sau ir paspauskite mygtuką!“. Paėmęs saldainį, žmogus kaip padėkos ženklą turi vieną kartą paspausti mygtuką. Praėjus trims sekundėms po sustojimo, robotas tęs savo judėjimą. Pasibaigus skanėstams (robotas užprogramuotas tam tikram saldumynų kiekiui ant padėklo), robotas atsisveikins, užsidegs raudonas indikatorius, robotas sustos.

Roboto valdymo programa buvo parašyta NXT Programming 2.0 aplinkoje.

Sprendimas 20.1 OGE užduotys 2017 m. informatikoje iš demonstracinės versijos. Tai antrosios dalies užduotis su išsamiu atsakymu, aukštu sudėtingumo lygiu. Numatomas užduoties atlikimo laikas – 45 minutės. Už šią užduotį galite surinkti daugiausia 2 taškus. Užduotis vykdoma kompiuteryje.

Patikrinti turinio elementai:
- gebėjimas parašyti trumpą algoritmą formalaus atlikėjo aplinkoje.

Egzamino metu išbandytų turinio elementų aprašymas:
- algoritmas,
algoritmų savybės,
— algoritmų rašymo būdai,
- blokinės schemos,
- Įvadas į programavimą
- algoritminės struktūros,
booleans,
- operacijos,
- išraiškos,
- užduoties suskirstymas į papildomas užduotis,
- pagalbinis algoritmas,
- apdoroti objektai (simbolių eilutės, skaičiai, sąrašai, medžiai).

20.1 OGE 2017 užduotis informatikoje

Robotas Vykdytojas gali judėti labirintu, nubrėžtu plokštumoje, suskirstytoje į ląsteles. Tarp gretimų (šonų) langelių gali būti sienelė, pro kurią Robotas negali praeiti.
Robotas turi devynias komandas. Keturios komandos yra komandos-užsakymai:
aukštyn
žemyn
į kairę
teisingai
Kai kuri nors iš šių komandų vykdoma, robotas atitinkamai perkelia vieną langelį: aukštyn , žemyn ↓, kairėn ←, dešinėn →. Jei robotas gaus komandą judėti per sieną, jis sugrius.
Robotas taip pat turi komandą perdažyti, kurioje yra nudažyta ląstelė, kurioje šiuo metu yra robotas.
Dar keturios komandos yra sąlygų tikrinimo komandos. Šios komandos patikrina, ar roboto kelias yra aiškus kiekviena iš keturių galimų krypčių:
viršus laisvas
dugnas laisvas
paliktas laisvas
teisę nemokamai
Šios komandos gali būti naudojamos kartu su " jeigu“, kurios forma yra tokia:
jeigu sąlyga tada
komandų seka
visi
Čia sąlyga yra viena iš sąlygų tikrinimo komandų.
Komandų seka yra vienas ar daugiau komandų įsakymų.
Pavyzdžiui, norėdami perkelti vieną langelį į dešinę, jei dešinėje nėra sienos, ir nudažyti langelį, galite naudoti šį algoritmą:
jei teisė laisva, tada
teisingai
perdažyti
visi
Vienoje sąlygoje galite naudoti kelias komandas sąlygoms patikrinti, naudodami loginius ryšius ir, arba, ne, pavyzdžiui:
if (dešinėn laisva) ir (ne apačioje laisva) tada
teisingai
visi
Norėdami pakartoti komandų seką, galite naudoti kilpą " Ate“, kuris atrodo taip:
nts iki pasimatymo sąlyga
komandų seka
kts
Pavyzdžiui, norėdami pereiti į dešinę, kai įmanoma, galite naudoti šį algoritmą:
nc, o teisė nemokamai
teisingai
kts

Atlikite užduotį.
Begalinis laukas turi horizontalias ir vertikalias sienas. Kairysis horizontalios sienos galas yra sujungtas su apatiniu vertikalios sienos galu. Sienų ilgis nežinomas. Vertikalioje sienoje yra lygiai vienas praėjimas, tiksli praėjimo vieta ir plotis nežinomi. Robotas yra narve, esančiame tiesiai virš horizontalios sienos dešiniajame gale.
Paveikslėlyje parodytas vienas iš galimi būdai sienų ir Roboto vieta (Robotas žymimas raide „P“).

Parašykite roboto algoritmą, kuris nudažo visas ląsteles iš karto kairėje ir dešinėje vertikalios sienos. Praėjimas turi likti nedažytas. Robotas turi nudažyti tik tas ląsteles, kurios tenkina ši sąlyga. Pavyzdžiui, aukščiau pateiktame paveikslėlyje robotas turi nudažyti šias ląsteles (žr. paveikslėlį).

Vykdant algoritmą Robotas neturi būti sunaikintas, algoritmo vykdymas turi būti baigtas. Galutinė roboto vieta gali būti savavališka.
Algoritmas turi išspręsti bet kokio leistino sienų išdėstymo ir bet kokios sienos viduje esančio praėjimo vietos ir dydžio problemą.
Algoritmas gali būti vykdomas formalaus vykdytojo aplinkoje arba parašytas teksto rengyklėje.
Išsaugokite algoritmą tekstiniame faile. Failo pavadinimą ir katalogą, kuriame norite išsaugoti jus, informuos egzamino organizatoriai.

OGE 2017 informatikos uždavinio sprendimas 20.1

Atlikėjo komandos bus įrašytos drąsusšriftas ir komentarai - kursyvu. Komentaro pradžia bus pažymėta simboliu "|" ( Darbo vykdymo metu pastabų rašyti nebūtina.).

|Judame į kairę, kol pasiekiame vertikalią sieną.
nc, o paliktas laisvas
į kairę
kts

|Judame aukštyn, kol pasiekiame praėjimą sienoje, ir dažome ląsteles.
nc, kol paliks laisvas
perdažyti
aukštyn
kts

|Pakilkite iki sienos galo ir dažykite ląsteles.
nc, kol paliks laisvas
perdažyti
aukštyn
kts

|Apeiname sieną.
į kairę
žemyn

|Judame žemyn, kol pasiekiame praėjimą sienoje, ir dažome ląsteles.
nc, kol visiškai atsilaisvins
perdažyti
žemyn
kts

|Mes judame žemyn iki sienos galo ir dažome ląsteles.
nc, kol visiškai atsilaisvins
perdažyti
žemyn
kts

Galimi ir kiti sprendimai.
Atlikėjo nurodymams leidžiama naudoti kitokią, mokiniams labiau pažįstamą sintaksę.
Leidžiama turėti atskiras sintaksės klaidas, kurios neiškreipia sprendimo autoriaus ketinimų.

2 taškai už užduotį skiriami, jei
Algoritmas tinkamai veikia su visais galiojančiais įvesties duomenimis.
1 balas už užduotį skiriamas, jei
Visoms galiojančioms įvestims teisinga:
1) algoritmo vykdymas baigtas, o robotas nedūžta;
2) užtamsinta ne daugiau kaip 10 papildomų langelių;
3) nedažytų paliko ne daugiau kaip 10 langelių iš tų, kurie turėjo būti nudažyti.
0 balų už užduotį skiriama, jei
Užduotis atlikta neteisingai, t.y., netenkinamos sąlygos, leidžiančios dėti 1 ar 2 balus.

Visas procesas susideda iš dviejų etapų: surinkimo ir programavimo. Surinkti geras robotas būtinos mechanikos žinios. Norint užprogramuoti robotą tam tikriems veiksmams, reikia mokėti kalbą, kurią supras pagrindinė plokštė arba programos blokas. Čia neužtenka mokyklinių informatikos žinių.

Kur gauti medžiagos?

Pirmiausia turite nuspręsti, kaip norite surinkti robotą: iš paruoštų rinkinių ar patiems pasirinkti medžiagas. Komplekto privalumas yra tai, kad jums nereikia ieškoti dalių atskirai. Dažniausiai iš vieno komplekto galima surinkti kelis įrenginius.

Vadinama konstrukcija, kuri nėra surinkta iš paruošto rinkinio atvira sistema. Tai taip pat turi savo privalumų: jūsų robotas bus individualus, o jūs pats galėsite tobulinti dizainą. Tačiau tikrai sugaišite daugiau laiko ir pastangų.

Iš ko pagamintas robotas?

Korpusas – metalinis arba plastikinis "kūnas", prie kurio pritvirtintos likusios dalys. Kiekvienas robotas turi energijos šaltinį – baterijas arba akumuliatorių. Atsižvelgiant į tai, kokią užduotį robotas atliks, parenkami jutikliai: jie gali aptikti spalvą ir šviesą, reaguoti į prisilietimą.

Kad robotas judėtų, reikia variklių. "Galva" viso mechanizmo – pagrindinės plokštės arba programos bloko. Jų pagalba robotas prisijungia prie kompiuterio ir gauna užduočių rinkinį.

Kaip priversti jį ką nors padaryti?

Kad robotas atliktų kokį nors veiksmą, reikia sukurti kompiuterio programa. Šio žingsnio sudėtingumas priklauso nuo surinkimo. Jei robotas surinktas iš komplekto Lego Mindstorms arba mBot, net vaikai gali valdyti savo programinę įrangą.

Jei pats kuriate robotą, turite išmokti programavimo pagrindus ir kalbą, kuria ketinate rašyti programą, pavyzdžiui, C ++.

Kodėl robotas negali vykdyti programos?

Patekęs į naują vietą, jis gali suklysti ir netinkamai vykdyti programą. Kad robotas viską padarytų teisingai, būtina sureguliuoti jutiklius. Pavyzdžiui, per ryškus apšvietimas gali trukdyti tinkamai atpažinti spalvas. Priklausomai nuo paviršiaus, kuriuo robotas juda, reguliuojama variklių galia.

Ar galiu išmokti surinkti ir programuoti mokykloje?

Nepaisant to, kad robotika nėra įtraukta į mokyklos programą, fizikos ir informatikos mokytojai gali išmokyti vaiką surinkti ir programuoti. Belgorode kai kurios mokyklos turi būrelius, kuriuose gamina robotus.

„Po pamokų su fizikos ir informatikos mokytojais mokomės programuoti. Mes jau žinome, kaip dirbti LegoMindstorms ir Robolab ( programinė įranga robotams - apytiksl. red.). Taip pat kartais išmokstame pasidaryti 3D detalių brėžinius“, – sakė Belgorodo inžinerinio jaunimo internato licėjaus mokiniai ir „RoboFest-2018“ dalyviai. Antonas Peršinas ir Dmitrijus Černovas.

Kur, be mokyklos, galima tapti robotu?

BelSU inžinerijos mokykloje yra klasė, kurioje mokoma surinkti ir programuoti robotus. 2017 metais Belgorode atidarytas Quantorium, kuriame robotikos mokomi moksleiviai nuo devynerių metų.

Norėdami tapti tikru robotu, galite įstoti į Robotikos fakultetą. Belgorode tokių žmonių dar nėra, bet BSTU im. Shukhov turi techninės kibernetikos skyrių. Jos mokiniai laimi prizus visos Rusijos robotikos varžybose.

Ar galite mokytis savarankiškai?

Taip. Internete yra daug išteklių, kuriuose galite sužinoti, ką sukurti ir kaip programuoti robotą.

Ar robotas bus naudingas?

Jis gali būti pritaikytas kasdienėms užduotims atlikti ir padaryti asistentu namuose. Internete galima rasti daugybę pavyzdžių, kaip namų išradėjai kuria robotus blynams kepti ar buto valymui.

Kaip patvirtinti savo sėkmę kuriant robotus?

Dalyvaukite tokiuose konkursuose kaip RoboFest. Priklausomai nuo amžiaus ir krypties, yra įvairių nominacijų. Iš esmės kiekvieno tipo robotas turi takelį, kuriame atlieka užduotis: fiksuoja kubą arba nubrėžia liniją. Taip pat yra statinių sistemų, kuriose teisėjai vertina projekto pristatymą ir mechanizmų veikimą.

Paprastai dalyviai į varžybas ateina su surinko robotai o ruošdamiesi laiko skiria tik jutiklių kalibravimui ir programos derinimui.

Redakcija dėkoja už pagalbą kuriant RoboFest-2018 dalyvių medžiagą Dmitrijus Agafonovas, Dmitrijus Černovas, Antonas Peršinas ir Danila Migrina.

Natalija Malyihina

Vykdytojo valdymo robotas KUMIR sistemoje

Robotas egzistuoja tam tikroje aplinkoje (stačiakampis languotas laukas). Sienos gali būti tarp kai kurių lauko langelių. Kai kurios ląstelės gali būti tamsesnės (3.11 pav.).

Robotas užima tiksliai vieną lauko langelį.

Komandomis aukštyn, žemyn, kairėn ir dešinėn, robotas pereina į kitą langelį nurodyta kryptimi. Jei kelyje yra siena, įvyksta gedimas - rodomas pranešimas apie negalėjimą vykdyti kitos komandos.

Gavęs komandą dažyti, robotas nuspalvina langelį, kuriame stovi. Jei langelis jau buvo nudažytas, jis bus nudažytas dar kartą, nors jokių matomų pokyčių nebus.

Robotas gali vykdyti tik teisingai parašytas komandas. Jei parašysite, o ne komandą, tada robotas nesupras šio įrašo ir iš karto praneš apie klaidą.

O
klaidos: 1 sintaksė; 2. logiškas

Scenų aprašymai saugomi tekstinius failus specialus formatas (.fil formatas).

Dabartinė- aplinka, kurioje yra robotas Šis momentas(įskaitant informaciją apie roboto padėtį).

Namai- aplinka, kurioje Robotas yra priverstinai patalpintas programos vykdymo naudojant Robotą pradžioje.

Veikimo procedūra:


  1. Paklausk pradinė aplinka pagal užduotį:
Meniu Įrankiai → Pakeiskite roboto pradinę aplinką (nubraižykite aplinką pagal užduoties sąlygą, suteikite pavadinimą, išsaugokite aplanke Asmeninis)

2. Nurodykite rangovą:

Įterpimo meniu → Naudoti robotą

3. Parašykite uždavinio sprendimo algoritmą.

4. Vykdykite algoritmą (meniu Vykdyti → Vykdyti nuolat / F9)

Vykdančiojo roboto komandų sistema KUMIR sistemoje


Komanda

Veiksmas

aukštyn

Robotas pakyla 1 langeliu aukštyn

žemyn

Robotas juda 1 langeliu žemyn

į kairę

Robotas perkelia 1 langelį į kairę

teisingai

Robotas perkelia 1 langelį į dešinę

perdažyti

Robotas nudažo ląstelę, kurioje jis yra

teisę nemokamai

Robotas patikrina atitinkamo vykdymą paprastas terminai

paliktas laisvas



viršus laisvas



dugnas laisvas



ląstelė yra užtamsinta



narvas švarus



Cikliniai algoritmai

Ciklas pasikartojančių veiksmų organizavimas, kol išsipildys tam tikra sąlyga .

Kilpos korpusas - pakartojamų veiksmų rinkinys.

Būklė - Būlio išraiška (paprasta arba sudėtinga (junginys))
Ciklo tipai:

1.Ciklas "Pakartokite n kartų" 2. Ciklas "Bye"
nc n kartų nts iki pasimatymo
. . Kilpinis korpusas. . Kilpinis korpusas
kts kts

Pavyzdys: nts iki pasimatymo teisę nemokamai


Bendras ciklo vaizdas „Pakartokite n kartų:

KARTOTI n KARTŲ

PABAIGA
kts

Bendras while ciklo vaizdas:

KOL DARYTI

PABAIGA
Sudėtinės sąlygos suformuota iš vieno ar kelių paprasti terminai ir tarnybiniai žodžiai IR, ARBA, NE.


Sudėtinė būklė A ir B(kur A, B yra paprastos sąlygos), tenkinama, kai tenkinama kiekviena iš dviejų į jį įtrauktų paprastų sąlygų.

Tegul A - nemokama viršuje AT - laisvas dešinėje tada sudėtinė sąlyga A ir B- nemokama viršuje IR nemokama dešinėje.


Sudėtinė būklė A ARBA B yra tenkinama, kai tenkinama bent viena iš dviejų paprastų sąlygų: viršuje nemokamai ARBA dešinėje nemokamai
Sudėtinė būklė NE A- įvykdyta, kai A sąlyga neįvykdyta.

Pavyzdys: Tegu A yra tamsintas langelis (paprasta sąlyga).

P Sudėtinės būklės tikrinimas NE A:

a) A – padaryta, NE A (NE nuspalvinta) – neatlikta.

b) A – neatlikta, NE A (NE užtemdyta) – atlikta.


Filialo komanda

Išsišakojimas – veiksmų organizavimo forma, kai, priklausomai nuo tam tikros sąlygos įvykdymo ar neįvykdymo, atliekama arba viena, arba kita veiksmų seka.

Bendras IF komandos vaizdas:

JEI TADA KITAIP

PABAIGA

KUMIR kalba:

Visiškas išsišakojimas: dalinis išsišakojimas:
jeigu tada jeigu tada

kitaip

visi visi

Pagalbinis algoritmas- algoritmas, išsprendžiantis kai kurias pagrindinės problemos subproblemą.

KUMIR sistemoje pagalbiniai algoritmai rašomi pagrindinės programos pabaigoje (po oficialus žodis con) yra raginami vykdyti pagrindinėje programoje pagal pavadinimą.

AT apklausos ir užduotys

1. Pateikite visus trijų komandų, kurios perkels robotą iš pradinės padėties į langelį B, algoritmus.

Ar yra šios užduoties algoritmas, kurio metu robotas atlieka:

a) du žingsniai b) keturi žingsniai; c) penki žingsniai; d) septyni žingsniai?


  1. Petya sukūrė algoritmą, kuris perkelia robotą iš langelio A į langelį B, kai kurios ląstelės yra nudažytos. Ką Kolya turėtų daryti su šiuo algoritmu, kad gautų algoritmą, kuris perkelia robotą iš B į A ir užpildo tuos pačius langelius?


7. Žinomi du pagalbiniai algoritmai Robotas

Nupieškite, kas atsitinka, kai robotas atlieka šiuos pagrindinius algoritmus:


a)

nc 5 kartus


modelis_1

teisė; teisė;


b)

nc 7 kartus


modelis_2

teisė; teisingai


in)
teisė; teisė; teisingai

aukštyn; aukštyn

teisė; teisė; teisingai

žemyn; žemyn


G)
teisė; teisingai
teisė; teisingai

8. Sukurkite algoritmus, pagal kuriuos robotas nuspalvins nurodytas langelius:



9. Yra žinoma, kad kažkur dešinėje Roboto yra siena. Sudarykite algoritmą, kurį valdydamas robotas nupieš daugybę langelių iki sienos ir grįš į pradinę padėtį.

10. Yra žinoma, kad kažkur dešinėje Roboto yra užtemdyta ląstelė.

NUO palikite algoritmą, kurį valdydamas Robotas nuspalvins keletą langelių iki užtamsinto langelio ir grįš į pradinę padėtį.

11. Yra žinoma, kad Robotas yra šalia kairiojo įėjimo į horizontalųjį koridorių.

12. Yra žinoma, kad Robotas yra kažkur horizontaliame koridoriuje. Nei viena koridoriaus kamera nedažyta.

Sudarykite algoritmą, kurį valdydamas robotas nuspalvins visas šio koridoriaus ląsteles ir grįš į pradinę padėtį.


13. Dešimties langelių eilėje į dešinę nuo roboto kai kurios ląstelės yra užtamsintos.

NUO palikite algoritmą, kuris dažo ląsteles:

a) po kiekvienu tamsesniu langeliu;

b) virš ir po kiekvienu užtamsintu langeliu.


14. Ką galima pasakyti apie šio algoritmo fragmento teisingumą?

nts iki pasimatymo ląstelė yra užtamsinta

JEI teisę nemokamai TADA

teisė; perdažyti

į
c

15. Parašykite programą, su kuria Robotas gali patekti į langelį B visuose trijuose labirintuose.


16. Parašykite programą, pagal kurią Robotas galės eiti koridoriumi iš apatinio kairiojo lauko kampo į viršutinį dešinįjį. Koridorius yra vieno langelio pločio ir driekiasi kryptimi iš kairės-apačios-dešinės-aukštyn. Galimo koridoriaus pavyzdys parodytas paveikslėlyje.

W

adachi GIA


  1. 1 koridorius. Robotas yra kažkur vertikaliame koridoriuje. Nei viena koridoriaus kamera nedažyta. Sukurkite algoritmą, pagal kurį Robotas nudažys visas šio koridoriaus ląsteles ir grįš į pradinę padėtį.

  1. Į
    Būtinas

    Duota
    koridorius2. Robotas yra siauro vertikalaus koridoriaus viršutinėje kameroje. Koridoriaus plotis yra viena langelis, koridoriaus ilgis gali būti savavališkas.

Galimas pradinės Roboto vietos variantas parodytas paveikslėlyje (Robotas žymimas raide "P")

Parašykite roboto algoritmą, kuris užpildo visas koridoriaus langelius ir grąžina robotą į pradinę padėtį. Pavyzdžiui, aukščiau pateiktame paveikslėlyje robotas turėtų nupiešti šias ląsteles (žr. paveikslėlį):


  1. Begaliniame lauke yra ilga horizontali siena. Sienos ilgis nežinomas. Robotas yra viename iš narvų tiesiai virš sienos. Pradinė roboto padėtis taip pat nežinoma. Viena iš galimų pozicijų:
H


Būtinas

Duota
Parašykite roboto algoritmą, kuris nudažo visas ląsteles virš sienos ir šalia jos, neatsižvelgiant į sienos dydį ir pradinę roboto padėtį. Pavyzdžiui, pateiktame piešinyje robotas turi nudažyti šias ląsteles:

Galutinė roboto padėtis gali būti savavališka. Vykdant algoritmą, robotas neturėtų būti sunaikintas.



  1. Begaliniame lauke yra ilga vertikali siena. Sienos ilgis nežinomas. Robotas yra viename iš narvų, esančių tiesiai į dešinę nuo sienos. Pradinė roboto padėtis taip pat nežinoma. Viena iš galimų roboto padėčių parodyta paveikslėlyje (robotas pažymėtas raide „P“): Parašykite darbo algoritmą, kuris nudažo visas greta sienos esančias ląsteles: kairėje, pradedant nuo viršaus. nedažytas ir per vieną; dešinėje, pradedant nuo apačios užtamsinta ir per vieną. Robotas turi nudažyti tik tas ląsteles, kurios atitinka šią sąlygą. Pavyzdžiui, aukščiau pateiktame paveikslėlyje robotas turi užpildyti šiuos langelius (žr. pav.): Galutinė roboto vieta gali būti savavališka. Algoritmas turi išspręsti atsitiktinio sienos dydžio ir bet kokios galiojančios pradinės roboto padėties problemą. Vykdydamas algoritmą, robotas neturėtų sugriūti.


Parašykite roboto algoritmą, kuris nudažo visas langelius, esančius kairėje nuo vertikalios sienos ir virš horizontalios sienos bei greta jų. Robotas turi nudažyti tik tas ląsteles, kurios atitinka šią sąlygą. Pavyzdžiui, aukščiau pateiktame paveikslėlyje robotas turi nudažyti šias ląsteles (žr. paveikslėlį).


H parašykite algoritmą Robotui, kuris dažo ląsteles šalia sienos iš viršaus ir apačios, pradedant nuo kairės ir per vieną. Robotas turi nudažyti tik tas ląsteles, kurios atitinka šią sąlygą. Pavyzdžiui, pateiktame paveiksle a) robotas turi nudažyti šias ląsteles (žr. b pav.).

Galutinė roboto padėtis gali būti savavališka. Algoritmas turi išspręsti atsitiktinio sienos dydžio ir bet kokios galiojančios pradinės roboto padėties problemą.



R

  1. Begaliniame lauke yra ilga vertikali siena. Sienos ilgis nežinomas. Robotas yra viename iš narvų, esančių tiesiai kairėje sienos pusėje. Pradinė roboto padėtis taip pat nežinoma. Viena iš galimų roboto padėčių parodyta paveikslėlyje (robotas pažymėtas raide „P“):
Darbui parašykite algoritmą, kuris nudažo visas greta sienos esančias ląsteles:

  • visi kairėje;

  • dešinėje, pradedant nuo viršaus nedažyta ir per vieną.
Robotas turi nudažyti tik tas ląsteles, kurios atitinka šią sąlygą.

B
1102_GIA2011

Begaliniame lauke yra dvi horizontalios sienos. Sienų ilgis nežinomas. Atstumas tarp sienų nežinomas. Robotas yra virš apatinės sienos narve, esančiame jo kairiajame krašte. Parašykite roboto algoritmą, kuris nudažo visas ląsteles, esančias virš apatinės sienos ir po viršutine siena bei greta jų. Robotas turi nudažyti tik tas ląsteles, kurios atitinka šią sąlygą. Pavyzdžiui, aukščiau pateiktame brėžinyje robotas turi užpildyti šiuos langelius (žr. pav.):

Galutinė roboto vieta gali būti savavališka. Algoritmas turi išspręsti problemą dėl savavališko lauko dydžio ir bet kokios leistinos sienų vietos stačiakampio lauko viduje. Vykdydamas algoritmą, robotas neturėtų sugriūti.


AT
1103_GIA_2011


Begaliniame lauke yra horizontali siena. Sienos ilgis nežinomas. Nuo dešiniojo sienos galo žemyn tęsiasi vertikali siena, taip pat nežinomo ilgio. Robotas yra virš horizontalios sienos narve, esančiame jo kairiajame krašte. Paveikslėlyje parodytas vienas iš galimų sienų ir Roboto išdėstymo būdų (Robotas žymimas raide "P").

Parašykite roboto algoritmą, kuris nudažo visas ląsteles, esančias virš horizontalios sienos ir į dešinę nuo vertikalios sienos bei greta jų. Robotas turi nudažyti tik tas ląsteles, kurios atitinka šią sąlygą. Pavyzdžiui, aukščiau pateiktame paveikslėlyje robotas turi nudažyti šias ląsteles (žr. paveikslėlį).

Programa Kumir

Menininkas robotas


Kas yra robotas atlikėjas?

  • Įsivaizduokite languotą lauką (kaip lapą iš sąsiuvinio dėžutėje), ant kurio yra tam tikras objektas, kurį pavadinsime Robotu. Naudodami specialias komandas galime valdyti šį Robotą – judinti po ląsteles, dažyti ant ląstelių. Ir daugeliu atvejų mūsų užduotis bus parašyti tokią programą Robotui, kurią vykdydamas jis nuspalvins tam tikras ląsteles.

„Idol“ aplinkos nustatymas roboto atlikėjui

  • Pradėta Kumir programa atrodo taip.

Pradinė roboto aplinka

  • Prieš pradedant vykdyti programą, būtina nustatyti Roboto vykdytojo paleidimo aplinką. Tai reiškia, kad reikia įdiegti robotą geidžiama pozicija, sutvarkykite sienas, nudažykite norimas ląsteles ir tt Šis žingsnis yra labai svarbus. Jei to nepaisysite, programa gali tinkamai neveikti arba net sugesti.

Paspauskite Redaguoti aplinką



Atlikėjas robotas. Paprastos komandos.

  • aukštyn
  • žemyn
  • į kairę
  • teisingai
  • perdažyti

Šių komandų vykdymo rezultatas aiškus iš jų pavadinimo:

  • aukštyn – perkelkite robotą viena ląstele aukštyn
  • žemyn – perkelkite robotą vienu langeliu žemyn
  • į kairę – perkelkite robotą vienu langeliu į kairę
  • dešinėn – perkelkite robotą viena langeliu į dešinę
  • dažyti – nuspalvinti esamą langelį (ląstelę, kurioje yra robotas).

Algoritmo pavyzdys

  • Pirmiausia turite parašyti frazę:
  • naudoti Robotas

Jei žinoma, kiek langelių reikia nudažyti, tada sprendimo algoritmas bus toks!


Užduotis numeris 1

  • Parašykite programą, kuri išspręstų šią problemą, jei žinote, kiek langelių reikia dažyti

Ciklai

  • 1. Kilpa su skaitikliu naudojamas, kai iš anksto žinoma, kiek pakartojimų reikia atlikti.

nc laikas

kts

Čia turime nurodyti pakartojimų skaičių (skaičius) ir komandas, kurios bus kartojamos. Komandos, kurios kartojasi cikle, vadinamos ciklo korpusas.



Užduotis numeris 2

  • Parašykite programą, kad išspręstumėte šią problemą, naudodami kilpą su skaitikliu

  • 2. kilpa su sąlyga- nors sąlyga yra teisinga, ciklas yra teisingas, o jei klaidingas, tai netiesa
  • Atlikėjas robotas turi keletą sąlygų

viršus laisvas

dugnas laisvas

paliktas laisvas

teisę nemokamai

viršutinė siena

apatinė siena

kairioji siena

dešinė siena

  • Galite naudoti daleles: NE, IR, ARBA

Sąlyginės kilpos struktūra

nts iki pasimatymo teisę nemokamai

teisingai

perdažyti

kts



Užduotis numeris 3

  • Parašykite programą, kuri išspręstų šią problemą naudojant sąlyginę kilpą:

Užduotis numeris 4

  • Parašykite programą, kuri išspręstų šią problemą naudojant sąlygines kilpas:



Problemos sprendimas:

  • 2. Robotas turi būti perkeltas iš pradinės padėties į galutinę padėtį, dažant sienas


Užduotis numeris 5

  • Begaliniame lauke yra horizontali siena. Sienos ilgis nežinomas. Robotas yra ant sienos, kairiajame gale. Paveikslėlyje parodyta roboto vieta sienos atžvilgiu (robotas žymimas raide "P"):

Atsakymas į 5 užduotį

  • nc dar ne (nemokama apačioje)

perdažyti

Vienoje eilutėje rašoma ciklo pradžia (nts) ir sąlyga (dar ne (apačioje laisva)).



Dizainas jeigu

  • viršuje laisvas apačioje laisvas kairysis laisvas dešinysis laisvas
  • Šios komandos gali būti naudojamos kartu su sąlyga "jei", kurios forma yra tokia:
  • jeigu sąlyga tada
  • komandų seka
  • Pavyzdžiui, norėdami perkelti vieną langelį į dešinę, jei dešinėje nėra sienos, ir nudažyti langelį, galite naudoti šį algoritmą:
  • jei teisė laisva, tada
  • teisingai
  • perdažyti

Užduotis numeris 7

Sienų ilgiai nežinomi.


Atsakymas į 7 užduotį

kol viršus bus laisvas

perdažyti

teisingai

kol viršus laisvas

teisingai

kol teisė laisva

perdažyti

teisingai

kol teisė bus laisva

perdažyti

žemyn

kol teisė laisva

žemyn

kol teisė bus laisva

perdažyti

žemyn


Užduotis numeris 8

Sienų ilgiai nežinomi.

Kiekvienoje sienoje yra lygiai po vieną praėjimą, tiksli praėjimo vieta ir plotis nežinomi.


Atsakymas į 8 užduotį

kol viršus laisvas

kol viršus bus laisvas

perdažyti

kol viršus laisvas

kol viršus bus laisvas

perdažyti

kol dugnas bus laisvas

perdažyti

kol dugnas laisvas

kol dugnas bus laisvas

perdažyti


Užduotis numeris 9

Sienų ilgiai nežinomi.

Kiekvienoje sienoje yra lygiai po vieną praėjimą, tiksli praėjimo vieta ir plotis nežinomi.


Atsakymas į 9 užduotį

kol dugnas laisvas

kol dugnas bus laisvas

perdažyti

kol dugnas laisvas

kol dugnas bus laisvas

perdažyti

kol viršus bus laisvas

perdažyti

kol viršus laisvas

kol viršus bus laisvas

perdažyti


Užduotis numeris 10

Sienų ilgiai nežinomi.

Kiekvienoje sienoje yra lygiai po vieną praėjimą, tiksli praėjimo vieta ir plotis nežinomi.


Atsakymas į 10 užduotį

o kairė laisva

kol kairė bus laisva

perdažyti

o kairė laisva

kol kairė bus laisva

perdažyti

kol teisė bus laisva

perdažyti

kol teisė laisva

kol teisė bus laisva

perdažyti


Užduotis numeris 11

Sienų ilgiai nežinomi.

Kiekvienoje sienoje yra lygiai po vieną praėjimą, tiksli praėjimo vieta ir plotis nežinomi.


Atsakymas į 11 užduotį

kol viršus bus laisvas

kol viršus bus laisvas

perdažyti

kol dugnas laisvas

kol viršus bus laisvas

perdažyti


Užduotis numeris 12

Begaliniame lauke yra laiptai. Pirma, laiptai leidžiasi iš dešinės į kairę, tada nusileidžia iš kairės į dešinę. Kiekvieno žingsnio aukštis yra vienas langelis, plotis - du langeliai. Robotas yra dešinėje nuo viršutinės laiptų pakopos. Žingsnių, vedančių į kairę, ir žingsnių, vedančių į dešinę, skaičius nežinomas. Paveikslėlyje parodytas vienas iš galimų laiptų ir roboto padėties būdų (Robotas pažymėtas raide „P“).


Atsakymas į 12 užduotį

Judame žemyn po laiptais iš dešinės į kairę, kol pasiekiame laiptų sankryžą:

nc, kol dugnas laisvas

žemyn

į kairę

į kairę

Nusileidžiame žemyn į besileidžiančių laiptų galą, pakeliui nudažydami reikiamas ląsteles:

nc, kol paliks laisvas

perdažyti

teisingai

perdažyti

teisingai

žemyn



Atsakymas į 13 užduotį

nc, o paliktas laisvas

perdažyti

į kairę

aukštyn

nc, kol paliks laisvas

perdažyti

aukštyn


Užduotis numeris 14

Begaliniame lauke yra stačiakampis, apribotas sienomis. Stačiakampio kraštinių ilgiai nežinomi. Robotas yra stačiakampio viduje. Paveikslėlyje parodytas vienas iš galimų sienų ir Roboto išdėstymo būdų (Robotas žymimas raide "P").


Atsakymas į 14 užduotį

kol teisė laisva

teisingai

kol viršus laisvas

aukštyn

perdažyti

nc, o paliktas laisvas

į kairę

perdažyti



Atsakymas į 15 užduotį

kol teisė laisva

perdažyti

teisingai

kol dugnas laisvas

perdažyti

žemyn

perdažyti

dar ne (nemokama apačioje)

į kairę

žemyn

dar ne (teisingai nemokama)

perdažyti

žemyn

perdažyti

teisingai

dar ne (viršuje laisvas)

perdažyti

teisingai



Atsakymas į 16 užduotį

kol teisė bus laisva

perdažyti

žemyn

perdažyti

teisingai

kol viršus bus laisvas

perdažyti

teisingai

kol viršus laisvas

aukštyn

kol teisė laisva

perdažyti

teisingai

kol teisė bus laisva

perdažyti

žemyn