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 sistemojeRobotas 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:
Paklausk pradinė aplinka pagal užduotį:
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?
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 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į.
Į
BūtinasDuota
koridorius2. Robotas yra siauro vertikalaus koridoriaus viršutinėje kameroje. Koridoriaus plotis yra viena langelis, koridoriaus ilgis gali būti savavališkas.
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į):
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ų:
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.
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 | |||||
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“):
visi kairėje;
dešinėje, pradedant nuo viršaus nedažyta ir per vieną.
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