Cum să faci sarcini în idol. Portal educațional
Întregul proces constă din două etape: asamblare și programare. Pentru a asambla un robot bun, aveți nevoie de cunoștințe de mecanică. Pentru a programa un robot să efectueze anumite acțiuni, trebuie să cunoașteți o limbă pe care placa de sistem sau unitatea software o vor înțelege. Cunoștințele școlare de informatică nu sunt suficiente aici.
De unde pot lua materialul?
Mai întâi trebuie să decideți cum doriți să asamblați robotul: din truse gata făcute sau selectând singur materialele. Avantajul setului este că nu trebuie să căutați piesele separat. Cel mai adesea, mai multe dispozitive pot fi asamblate dintr-un set.
O structură care nu este asamblată dintr-un kit gata făcut se numește sistem deschis. Are și avantajele sale: robotul tău va avea propria personalitate, iar tu însuți vei putea îmbunătăți designul. Dar cu siguranță vei petrece mai mult timp și efort.
În ce constă un robot?
Carcasa - metal sau plastic "corp", de care sunt atașate părțile rămase. Fiecare robot are o sursă de energie - baterii sau acumulator. În funcție de sarcina pe care o va îndeplini robotul, senzorii sunt selectați: aceștia pot detecta culoarea și lumina și pot răspunde la atingere.
Pentru a face robotul să se miște, veți avea nevoie de motoare. "Cap"întregul mecanism - placa de sistem sau unitatea software. Cu ajutorul lor, robotul se conectează la un computer și primește un set de sarcini.
Cum pot să-l fac să facă ceva?
Pentru ca robotul să efectueze o anumită acțiune, trebuie să creați un program de calculator. Complexitatea acestei etape depinde de asamblare. Dacă robotul este asamblat dintr-un set Lego Mindstorms sau mBot, atunci chiar și copiii își pot gestiona software-ul.
Dacă construiți singur robotul, va trebui să învățați elementele de bază ale programării și limbajul în care veți scrie programul, cum ar fi C++.
De ce ar putea un robot să nu execute un program?
Când ajunge într-un loc nou, poate deveni confuz și poate executa incorect programul. Pentru ca robotul să facă totul corect, senzorii trebuie reglați. De exemplu, iluminarea prea puternică vă poate împiedica să recunoașteți culorile în mod adecvat. In functie de suprafata pe care se misca robotul se regleaza puterea motoarelor.
Puteți învăța să asamblați și să programați la școală?
În ciuda faptului că robotica nu este inclusă în programa școlară, profesorii de fizică și informatică pot învăța un copil cum să asambleze și să programeze. În Belgorod, unele școli au cluburi în care fac roboți.
„După lecții cu profesori de fizică și informatică, învățăm să programăm. Știm deja cum să lucrăm în LegoMindstorms și Robolab ( software pentru roboți - aprox. auto.). De asemenea, uneori învățăm să facem desene 3D ale pieselor”, au spus studenții de la Belgorod Engineering Youth Boarding Lyceum și participanții la RoboFest 2018. Anton PershinȘi Dmitri Cernov.
Unde, în afară de școală, poți deveni robotician?
La școala de ingineri BelSU există o clasă în care se învață cum să asamblați și să programați roboți. În 2017, Quantorium s-a deschis la Belgorod, unde robotica este predată elevilor de la vârsta de nouă ani.
Pentru a deveni un robotist adevărat, te poți înscrie la departamentul de robotică. În Belgorod nu există încă astfel de oameni, dar la BSTU. Shukhov are un departament de cibernetică tehnică. Elevii ei primesc premii la competiții de robotică din toată Rusia.
Este posibil să înveți singur?
Da. Există multe resurse pe Internet de unde puteți învăța ce să construiți și cum să programați un robot.
Va fi util robotul?
Poate fi adaptat pentru sarcinile de zi cu zi și transformat într-un asistent în casă. Există multe exemple pe internet despre cum inventatorii de acasă creează roboți pentru coacerea clătitelor sau pentru curățarea unui apartament.
Cum îți poți dovedi succesul în crearea roboților?
Participați la competiții precum RoboFest. În funcție de vârstă și direcție, există nominalizări diferite. Practic, fiecare tip de robot are o pistă pe care îndeplinește sarcini: apucă un cub sau trage o linie. Există și sisteme statice în care judecătorii evaluează prezentarea proiectului și funcționarea mecanismelor.
De regulă, participanții vin la competiții cu roboți asamblați și în timpul pregătirii își petrec timpul doar cu calibrarea senzorilor și ajustarea programului.
Redactorii doresc să mulțumească participanților la RoboFest 2018 pentru asistența acordată în crearea materialului. Dmitri Agafonov, Dmitri Cernov, Anton PershinaȘi Danila Migrina.
Natalia Malykhina
Introducere în programul Idol și stăpânirea elementelor de bază ale programării.
În cadrul acestuia, studenții pot dobândi abilități practice în crearea și depanarea unui algoritm, lucrând cu interpreți precum Robot, Draftsman, Aquarius, Grasshopper, Turtle.
Când studiezi una dintre cele mai dificile secțiuni ale informaticii, „algoritmizarea și programarea”.
Scopul dezvoltării :
Descarca:
Previzualizare:
Dezvoltarea metodologică în informatică.
Subiect: „Performant robot în programul KuMir în lecțiile de informatică”
profesor de tehnologie „Informatică și TIC”
Notă explicativă
Scop de dezvoltare: studiați posibilitățile de programare folosind exemplul unui anumit robot performer folosind mediul KUMIR; oferi abilități practice în lucrul cu un interpret.
Dezvoltarea metodologicăcompilat pentru lecțiile de informaticăExersează pe computer: lucrul cu executor de algoritm educațional; elaborarea algoritmilor liniari, ramificati si ciclici pentru controlul executorului; elaborarea de algoritmi cu o structură complexă; utilizarea algoritmilor auxiliari (proceduri, subrutine).
Elevii ar trebui să știe:
- ce este un interpret; SKI Robot, mediul interpretului Robot;
- ce este un algoritm;care sunt principalele proprietăți ale algoritmului;
- modalități de scriere a algoritmilor: organigrame, limbaj algoritmic educațional;structuri algoritmice de bază: urmărire, ramificare, buclă; structurilor
- algoritmi; ⇒ atribuirea algoritmilor auxiliari; tehnologii pentru construirea de algoritmi complecși:
Elevii ar trebui să fie capabili să:
- să înțeleagă descrierile algoritmilor în limbajul algoritmic educațional;
- efectuați o urmărire a algoritmului pentru un interpret cunoscut;
- creați algoritmi de control liniar, ramificat și ciclic pentru performerul robotului; evidențiați subsarcinile; definiți și utilizați algoritmi auxiliari.
Lecția 1 (2 ore) Lecția 1.
Robot interpret.Sistem de comandă a executorului.
Planul lecției.
- Descrierea SKI-ului interpretului, a mediului interpretului.
2. Analiza algoritmilor tipici Robot.
În timpul orelor.
Să ne uităm la descrierea artistului.
Mediul artistului: Performer Robotul poate naviga printr-un labirint desenat pe un plan împărțit în celule.
Robot de schi : comenzi simple: sus, jos, stânga, dreapta, pictură.
Comenzi logice: (verificări condiții)
sus liber jos liber
stânga liberă dreapta liberă.
Conective logice: AND, NOT, SAU:
Exemplu: (Nu este lăsat liber) sau (Nu este liber)
Comanda de filială: comanda bucla:
Dacă condiția atunci nicio condiție încă
O serie de comenzi o serie de comenzi
asta e tot kts
(În CMM-urile din 2009, comenzile robotului erau diferite de cele familiare copiilor, ceea ce a dus la confuzie :)
Comanda de filială: comanda bucla:
Dacă condiția atunci nts deocamdata conditia de facut
O serie de comenzi o serie de comenzi
sfârşitul sfârşitului
Vedere generală a ferestrei programului Idol. Mediul grafic al robotului:
În CMM-urile versiunii demo 2010, formatul de comandă a fost schimbat în obișnuit
Procedura pentru crearea unui algoritm:
1.Echipe Instrumente - Editați mediul de porniretrageți pereți pe câmpul Robot și setați robotul în poziția inițială.
2.Echipe Robot - Schimbă mediul de porniremenține noul mediu.
3.Echipe Inserare - Utilizați robotindica artistul.
4. În fereastra documentului, notați algoritmul folosind meniul Introduce.
5. Utilizarea comenzilor de execuție – rulați algoritmul continuu (sau pas cu pas).
6. Luați în considerare rezultatul executării algoritmului și, dacă este necesar, depanați-l.
Lecția 1 (2 ore) Lecția 2.
Munca practica "Compilare de algoritmi liniari”.
Sarcini: 1. Robot într-un punct arbitrar al câmpului. Pictați celula deasupra, dedesubt și în dreapta poziției inițiale.
- Robot într-un punct arbitrar al câmpului. Mutați Robotul cu 4 pătrate spre dreapta, colorându-le.
- Creați un nou mediu de pornire desenând pe teren un pătrat cu o latură de 4 pătrate. Salvați setarea ca cea de pornire.
- Creați un nou mediu de pornire desenând un coridor pe teren cu pasaje în pereți. Salvați mediul ca obst2.fil. Schimbați mediul de pornire în cel nou creat.
Lecția 2 (2 ore) Lecția 1.
Subiect : Ramificarea si rafinarea secventiala a algoritmului.
Analiza sarcinilor CMM folosind performerul Robot.
utilizați robotul
alg Kim 2009
început
dacă nu liber de jos
apoi la dreapta
Toate
dacă nu liber de jos
apoi la dreapta
Toate
dacă nu liber de jos
apoi la dreapta
Toate
con
utilizați robotul
alg Kim 2010
început
dacă nu liber de jos
apoi la dreapta
Toate
dacă nu liber de jos
apoi la dreapta
Toate
dacă nu liber de jos
apoi la dreapta
Toate
con
etc. sclav. nr. 14. Compilarea și depanarea algoritmilor de ramificare
Sarcini. Vezi atașamentul.
Lecția 3. Algoritmi ciclici. Lecția 1-2
Ţintă: dezvăluie esența conceptului de ciclu în algoritmi, arată formele de înregistrare a ciclurilor în algoritmi, oferă abilități în crearea și scrierea algoritmilor ciclici.
etc. sclav. nr. 15. Compilarea și depanarea algoritmilor ciclici
1.Creați un algoritm care pictează toate celulele interne adiacente peretelui.
utilizați robotul
alg
început
nts dreptul este gratuit pentru moment
vopsea peste; dreapta
kts
nts partea de jos este gratuită pentru moment
vopsea peste; jos
kts
nts nu sunt încă liberi de jos
vopsea peste; stânga
kts
con
2.Creează un algoritm care pictează toate celulele dintre Robot și perete. Distanța până la zid este necunoscută.
utilizați robotul
alg
început
nts dreptul este gratuit pentru moment
dreapta; vopsea peste
kts
con
3.Creează un algoritm care pictează toate celulele situate între doi pereți.
utilizați robotul
alg uch3
început
nts încă (nu este liber de sus) sau (nu este liber de jos)
dreapta
dacă (nu este liber de sus) și (nu este liber de jos)
Acea
vopsea peste
Toate
kts
con
4.Creați un algoritm care pictează toate celulele din jurul unui perete dreptunghiular.
alg uch4
început
vopsea peste; sus
nts nu este încă liber pe dreapta
vopsea peste; sus;
kts
vopsea peste;
nts nu sunt încă liberi de jos
vopsea peste;dreapta;
kts
vopsea peste;jos
nts nu sunt încă liberi în stânga
vopsea peste;jos;
kts
vopsea peste;
nts nu este în top încă gratuit
vopsea peste; stânga;
kts
con
utilizați robotul
alg uch5
început
dreapta
nts nu sunt încă liberi de jos
vopsea peste; dreapta
kts
vopsea peste; jos
nts stânga este liberă deocamdată
vopsea peste; stânga
kts
nts nu sunt încă liberi în stânga
vopsea peste; jos
kts
vopsea peste;stanga;vopseste peste; sus;
nts gratuit pe partea de sus pentru moment
vopsea peste; sus
kts
nts nu este în top încă gratuit
vopsea peste; stânga
kts
con
Lecția 4 Lecția 1
Algoritmi auxiliari.
Ţintă: introducerea conceptului de algoritmi principali și auxiliari; explicați regulile de utilizare a algoritmului auxiliar; analiza exemple de algoritmi folosind cei auxiliari.
Planul lecției
1. Introducerea de noi termeni (algoritmi principali și auxiliari, apeluri) și explicarea noilor concepte.
2. Analiza exemplelor de rezolvare a problemelor folosind un algoritm auxiliar.
Când rezolvați unele probleme, este convenabil să le împărțiți în subsarcini mai mici, fiecare dintre acestea putând fi formulată ca un algoritm independent. În acest caz, este mai întâi compilat așa-numitul algoritm principal, în care apelurile la algoritmi auxiliari sunt folosite pentru a rezolva subsarcinile, care sunt adăugate ulterior. Această soluție se numeștemetoda de rafinare secventiala.Permite unui grup de programatori să lucreze la un proiect, fiecare rezolvându-și propria sarcină secundară.
În procesul de rezolvare a unei probleme, fiecare algoritm auxiliar poate fi, dacă este necesar, împărțit în algoritmi auxiliari mai mici.
Este apelată comanda de executare a algoritmului auxiliar provocare și este scris în corpul algoritmului principal.
Același algoritm poate fi considerat principal și auxiliar în raport cu alți algoritmi. Într-un limbaj algoritmic, algoritmul principal este scris primul, iar algoritmii auxiliari sunt notați pe rând.
Sarcina 1:
Robotul se află în colțul din stânga sus al câmpului. Nu există pereți sau celule pictate. Creați un algoritm, folosind unul auxiliar, care desenează patru cruci pe o linie orizontală. Poziția finală a robotului poate fi arbitrară.
Soluţie
Analiza la tabla:
Sarcina 2. Robotul se află în colțul din stânga sus al câmpului. Nu există pereți sau celule pictate. Creați un algoritm care pictează un pătrat de 8 x 8 într-un model de șah Poziția finală a robotului poate fi arbitrară.
Lecția 4 Lecția 2
Lucrare practică pe un computer „Rezolvarea unei probleme folosind algoritmi auxiliari”.
Ţintă : pentru a insufla abilități practice în construirea algoritmilor folosind metoda rafinamentului secvenţial.
Planul lecției
1. Sarcina are loc în întregime pe un PC. Elevii primesc teme și le finalizează în mediul software Idol. Rezultatele lucrării sunt salvate ca fișiere pentru verificare ulterioară.
Problema 1 . Robotul se află în colțul din stânga jos al câmpului. Nu există pereți sau celule pictate. Creați un algoritm care pictează 6 dungi verticale de lungime egală în 6 celule. Poziția finală a robotului poate fi arbitrară.
Problema 2 .Folosind cele auxiliare, creați un algoritm pentru pictarea celulelor care formează numărul 1212.
Teme pentru acasă: Vino cu un algoritm care desenează următoarea imagine: Pentru a rezolva problema, utilizați doi algoritmi auxiliari.
Lecția 5 Lecția 1-2
Test
„Elaborarea unui algoritm în mediul de executare robot.”
Ţintă: testați cunoștințele dobândite privind crearea și capacitatea de a analiza algoritmi în mediul software Idol.
Sarcinile pentru test sunt împărțite pe nivel de dificultate și includ 3 sarcini cu Robotul executant (sarcina 1 și 2 - despre ramificare și bucle, sarcina 3 - despre utilizarea unui algoritm auxiliar.) Textele sarcinilor sunt date în apendice.
Situațiile inițiale și finale și algoritmii creați sunt înregistrate ca fișier.
Nota se acordă în funcție de nivelul de dificultate al sarcinii. Studentul are dreptul de a alege tipul de temă.
Programul Idol
Robot interpret
Cine este interpretul robotului?
- Imaginați-vă un câmp în carouri (ca o foaie dintr-un caiet cu model în carouri) pe care se află un anumit obiect, pe care îl vom numi Robot. Folosind comenzi speciale, putem controla acest robot - mutați-l în jurul celulelor, pictați peste celule. Și în cele mai multe cazuri, sarcina noastră va fi să scriem un program pentru Robot, în care va picta anumite celule.
Configurarea mediului Idol pentru robotul interpret
- Programul Idol lansat arată așa.
Mediul de pornire al robotului
- Înainte de a începe execuția programului, este necesar să setați mediul de pornire pentru executorul Robot. Aceasta înseamnă plasarea Robotului în poziția dorită, așezarea pereților, vopsirea celulelor necesare etc. Acest pas este foarte important. Dacă îl ignorați, este posibil ca programul să nu funcționeze corect sau chiar să se blocheze.
presa Editați mediul
Robot interpret. Comenzi simple.
- sus
- jos
- stânga
- dreapta
- vopsea peste
Rezultatul executării acestor comenzi este clar din numele lor:
- sus - mutați robotul cu o celulă în sus
- jos - mutați robotul cu o celulă în jos
- stânga - mutați robotul cu o celulă la stânga
- dreapta - mutați robotul cu o celulă la dreapta
- paint over - pictează peste celula curentă (celula în care se află Robotul).
Exemplu de algoritm
- Mai întâi trebuie să scrieți fraza:
- utilizare Robot
Dacă știți câte celule trebuie vopsite, atunci algoritmul de soluție va fi următorul!
Sarcina nr. 1
- Scrieți un program pentru a rezolva următoarea problemă dacă știți câte celule trebuie să fie umbrite
Cicluri
- 1. Bucla cu contor folosit când se știe dinainte câte repetări trebuie făcute.
nc timp
…
kts
Aici trebuie să precizăm numărul de repetări (numărul) și comenzile care vor fi repetate. Comenzile care sunt repetate într-o buclă sunt apelate corpul ciclului.
Sarcina nr. 2
- Scrieți un program pentru a rezolva următoarea problemă folosind o buclă cu un contor
- 2. Bucla cu condiție - în timp ce condiția este adevărată, bucla este satisfăcută, dacă este falsă, nu este îndeplinită
- Artistul Robot are mai multe condiții
liber pe deasupra
liber de jos
lăsat liber
liber pe dreapta
perete de deasupra
zidul de dedesubt
peretele stâng
perete din dreapta
- Particule pe care le puteți folosi: NU, ȘI, SAU
Structura de buclă condiționată
nts pentru moment liber pe dreapta
dreapta
vopsea peste
kts
Sarcina nr. 3
- Scrieți un program pentru a rezolva următoarea problemă folosind o buclă condiționată:
Sarcina nr. 4
- Scrieți un program pentru a rezolva următoarea problemă folosind bucle condiționate:
Rezolvarea problemelor:
- 2. Robotul trebuie mutat din pozitia de start in pozitia finala, vopsindu-se peretii
Sarcina nr. 5
- Există un perete orizontal pe un câmp nesfârșit. Lungimea zidului este necunoscută. Robotul este situat deasupra peretelui, la capătul său din stânga. Figura arată locația robotului față de perete (robotul este desemnat cu litera „P”):
Răspuns la sarcina nr. 5
- nc nu încă (fund liber)
vopsea peste
Începutul ciclului (nc) și condiția (nu încă (liber de jos)) sunt scrise pe o singură linie.
Proiecta Dacă
- sus liber jos liber stânga liber dreapta liber
- Aceste comenzi pot fi utilizate împreună cu o condiție "Dacă", având următoarea formă:
- Dacă condiție Acea
- succesiune de comenzi
- De exemplu, pentru a muta o celulă la dreapta, dacă nu există niciun perete în dreapta, și pentru a picta celula, puteți utiliza următorul algoritm:
- dacă dreptul este liber atunci
- dreapta
- vopsea peste
Sarcina nr. 7
Lungimile zidurilor sunt necunoscute.
Răspuns la sarcina nr. 7
până când vârful este liber
vopsea peste
dreapta
în timp ce vârful este liber
dreapta
în timp ce dreptul este liber
vopsea peste
dreapta
nu este încă liber pe dreapta
vopsea peste
jos
în timp ce dreptul este liber
jos
nu este încă liber pe dreapta
vopsea peste
jos
Sarcina nr. 8
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 8
în timp ce vârful este liber
până când vârful este liber
vopsea peste
în timp ce vârful este liber
până când vârful este liber
vopsea peste
până când fundul este liber
vopsea peste
în timp ce fundul este liber
până când fundul este liber
vopsea peste
Sarcina nr. 9
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 9
în timp ce fundul este liber
până când fundul este liber
vopsea peste
în timp ce fundul este liber
până când fundul este liber
vopsea peste
până când vârful este liber
vopsea peste
în timp ce vârful este liber
până când vârful este liber
vopsea peste
Sarcina nr. 10
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 10
în timp ce stânga este liberă
în timp ce stânga este liberă
vopsea peste
în timp ce stânga este liberă
în timp ce stânga este liberă
vopsea peste
nu este încă liber pe dreapta
vopsea peste
în timp ce dreptul este liber
nu este încă liber pe dreapta
vopsea peste
Sarcina nr. 11
Lungimile zidurilor sunt necunoscute.
Fiecare zid are exact un pasaj, locația exactă a pasajului și lățimea acestuia sunt necunoscute.
Răspuns la sarcina nr. 11
până când vârful este liber
până când vârful este liber
vopsea peste
în timp ce fundul este liber
până când vârful este liber
vopsea peste
Sarcina nr. 12
Există o scară pe câmpul nesfârșit. Scara coboară mai întâi de la dreapta la stânga, apoi de la stânga la dreapta. Înălțimea fiecărei trepte este de un pătrat, lățimea este de două pătrate. Robotul se află în dreapta treptei de sus a scărilor. Numărul de pași care duc la stânga și numărul de pași care duc la dreapta sunt necunoscute. Figura arată una dintre modalitățile posibile de a poziționa scara și robotul (robotul este desemnat prin litera „P”).
Răspuns la sarcina nr. 12
Coborăm sub scări de la dreapta la stânga până ajungem la intersecția scărilor:
nts partea de jos este gratuită pentru moment
jos
stânga
stânga
Coborăm până la capătul scării care coboară, pictând celulele necesare pe parcurs:
nts nu este încă liber în stânga
vopsea peste
dreapta
vopsea peste
dreapta
jos
Răspuns la sarcina nr. 13
nts stânga este liberă deocamdată
vopsea peste
stânga
sus
nts nu este încă liber în stânga
vopsea peste
sus
Sarcina nr. 14
Pe un câmp infinit există un dreptunghi delimitat de pereți. Lungimile laturilor dreptunghiului sunt necunoscute. Robotul se află în interiorul unui dreptunghi. Figura arată una dintre modalitățile posibile de a poziționa pereții și robotul (robotul este desemnat prin litera „P”).
Răspuns la sarcina nr. 14
în timp ce dreptul este liber
dreapta
în timp ce vârful este liber
sus
vopsea peste
nts stânga este liberă deocamdată
stânga
vopsea peste
Răspuns la sarcina nr. 15
în timp ce dreptul este liber
vopsea peste
dreapta
în timp ce fundul este liber
vopsea peste
jos
vopsea peste
nu încă (fund liber)
stânga
jos
nu încă (liber în dreapta)
vopsea peste
jos
vopsea peste
dreapta
nu încă (gratuit deasupra)
vopsea peste
dreapta
Răspuns la sarcina nr. 16
nu este încă liber pe dreapta
vopsea peste
jos
vopsea peste
dreapta
până când vârful este liber
vopsea peste
dreapta
în timp ce vârful este liber
sus
în timp ce dreptul este liber
vopsea peste
dreapta
nu este încă liber pe dreapta
vopsea peste
jos
Controlul executorului robot în sistemul KUMIR
Robotul există într-un anumit mediu (un câmp dreptunghiular în carouri). Între unele celule ale câmpului pot exista pereți. Unele celule pot fi vopsite peste (Fig. 3.11).
Robotul ocupă exact o celulă a câmpului.
Prin comenzi sus, jos, stânga și dreapta, Robotul se deplasează în celula adiacentă în direcția indicată. Dacă există un perete în cale, are loc o defecțiune - este afișat un mesaj care spune că este imposibil să executați următoarea comandă.
La comanda de a picta, Robotul pictează celula în care se află. Dacă celula a fost deja vopsită, aceasta va fi vopsită din nou, deși nu vor apărea modificări vizibile.
Robotul poate executa doar comenzi scrise corect. Dacă notați în loc de comanda down, Robotul nu va înțelege această intrare și va raporta imediat o eroare.
DESPRE
erori: 1 sintactic; 2. logic
Descrierile situațiilor sunt stocate în fișiere text într-un format special (format .fil).
Actual- mediul în care se află robotul în prezent (inclusiv informații despre poziția robotului).
Pornire- mediul în care Robotul este forțat să fie plasat la începutul execuției unui program folosind Robotul.
Procedura de operare:
A stabilit mediu de pornire in functie de conditiile problemei:
2. Specificați Antreprenorul:
Meniul Inserare → Utilizare robot
3. Scrieți un algoritm pentru rezolvarea problemei.
4. Executați algoritmul (Meniu Execuție →Run continuu /F9)
Sistem de comandă pentru performer robot în sistemul KUMIR
Echipă |
Acțiune |
sus |
Robotul se mișcă cu 1 pătrat în sus |
jos |
Robotul se mișcă cu 1 pătrat în jos |
stânga |
Robotul se deplasează cu 1 pătrat spre stânga |
dreapta |
Robotul se deplasează cu 1 pătrat spre dreapta |
vopsea peste |
Robotul pictează celula în care se află |
liber pe dreapta |
Robotul verifică execuția corespunzătoare simplu conditii |
lăsat liber |
↓ |
liber pe deasupra |
↓ |
liber de jos |
↓ |
celula este vopsită peste |
↓ |
cușca este curată |
↓ |
Algoritmi ciclici
Ciclu– organizarea repetării acțiunilor în timp ce o anumită condiție este adevărată .
Corpul buclei este un set de acțiuni repetabile.
Condiție - expresie logică (simplu sau complex (compozit))
Tipuri de cicluri:
1.Buclă „Repetați de n ori” 2. Buclă „Până”
nts de n ori nts pentru moment
. . Corpul buclei. . Corpul buclei
kts kts
Exemplu: nts pentru moment liber pe dreapta
Vedere generală a ciclului „Repetați de n ori:
REPEȚI de n ORI
Sfârşit
kts
Vedere generală a ciclului „în timp”:
FĂ-O LA RED
Sfârşit
Condiții compozite format din una sau mai multe condiții și cuvinte funcționale simple ȘI, SAU, NU.
Stare compozită A SI B(unde A, B sunt condiții simple), este îndeplinită atunci când fiecare dintre cele două condiții simple incluse în acesta este îndeplinită.
Fie A - gratuit deasupra,ÎN - liber pe dreapta, apoi condiția compusă A SI B- liber deasupra și liber pe dreapta.
Stare compozită A SAU B îndeplinite atunci când este îndeplinită cel puțin una dintre cele două condiții simple incluse în acesta: sus liber SAU dreapta liber
Stare compozită NU A- satisfăcut atunci când condiția A nu este îndeplinită.
Exemplu: Fie A o celulă colorată (condiție simplă).
P Verificarea stării compuse NU A:
a) A - finalizat, NU A (NEUmbriat) - nefinalizat.
b) A - necompletat, NOT A (NEUmbriat) - finalizat.
Comanda de filială
Ramificare - o formă de organizare a acțiunilor în care, în funcție de îndeplinirea sau neîndeplinirea unei anumite condiții, se realizează fie una, fie alta succesiune de acțiuni.
Vedere generală a comenzii IF:
DACĂ ACEA IN CAZ CONTRAR
Sfârşit
În limbajul ICON:
Ramificare completă: Ramificare incompletă:
Dacă Acea
Dacă Acea
in caz contrar
totul totul
Algoritm auxiliar- un algoritm care rezolvă o subsarcină a problemei principale.
În sistemul KUMIR, algoritmii auxiliari sunt scrieți la sfârșitul programului principal (după cuvântul de serviciu con), sunt chemate pentru execuție în programul principal după nume.
ÎN sondaje și sarcini
1. Dați toți algoritmii din trei comenzi care vor muta Robotul din poziția inițială în celula B.
Există un algoritm pentru această sarcină în care robotul face:
a) două etape; b) patru trepte; c) cinci trepte; d) șapte pași?
Petya a compilat un algoritm care transferă Robotul din celula A în celula B prin pictarea unor celule. Ce ar trebui să facă Kolya cu acest algoritm pentru a obține un algoritm care transferă Robotul de la B la A și pictează aceleași celule?
7. Sunt cunoscuți doi algoritmi roboti auxiliari
Desenați ce se va întâmpla când robotul execută următorii algoritmi de bază:
A) nts de 5 ori model_1 dreapta; dreapta; |
b) nts de 7 ori model_2 dreapta; dreapta |
V) dreapta; dreapta; dreapta sus; sus dreapta; dreapta; dreapta jos; jos |
G) dreapta; dreapta dreapta; dreapta |
8. Creați algoritmi sub controlul cărora Robotul va picta peste celulele indicate:
9. Se știe că undeva în dreapta Robotului se află un zid. Creați un algoritm sub controlul căruia Robotul va picta un rând de celule până la perete și va reveni la poziția inițială.
10. Se știe că undeva în dreapta Robotului se află o celulă plină.
CU lăsați algoritmul sub controlul căruia Robotul va picta un număr de celule până la celula vopsită și va reveni la poziția inițială.
11. Se știe că Robotul este situat lângă intrarea din stânga a coridorului orizontal.
12. Se știe că Robotul se află undeva pe coridorul orizontal. Niciuna dintre celulele coridorului nu este vopsită.
Creați un algoritm sub controlul căruia Robotul va picta toate celulele acestui coridor și va reveni la poziția inițială.
13. Într-un rând de zece celule în dreapta Robotului, unele celule sunt umbrite.
CU lăsați algoritmul care pictează celulele:
a) sub fiecare celulă umbrită;
b) deasupra și sub fiecare celulă umbrită.
14. Ce se poate spune despre corectitudinea următorului fragment al algoritmului?
nts pentru moment celula este vopsită peste
DACĂ liber pe dreapta ACEA
dreapta; vopsea peste
La
ts
15. Scrieți un program prin care Robotul să poată ajunge la celula B în toate cele trei labirinturi.
16. Scrieți un program, în urma căruia Robotul va putea merge de-a lungul coridorului din colțul din stânga jos al câmpului până în dreapta sus. Coridorul are o celulă lățime și se întinde în direcția de la stânga jos la dreapta sus. Un exemplu de coridor posibil este prezentat în figură.
Z
Realizări GIA
Coridorul 1. Robotul este undeva pe coridorul vertical. Niciuna dintre celulele coridorului nu este vopsită. Creați un algoritm sub controlul căruia Robotul va picta toate celulele acestui coridor și va reveni la poziția inițială.
LA
NecesarDat
coridorul2. Robotul este situat în celula superioară a unui coridor vertical îngust. Lățimea coridorului este de o celulă, lungimea coridorului poate fi arbitrară.
Scrieți un algoritm pentru robot care pictează toate celulele din interiorul coridorului și readuce robotul în poziția inițială. De exemplu, pentru imaginea de mai sus, Robotul trebuie să picteze peste următoarele celule (vezi imaginea):
Există un perete orizontal lung într-un câmp nesfârșit. Lungimea zidului este necunoscută. Robotul se află într-una dintre celulele chiar deasupra peretelui. Poziția inițială a robotului este, de asemenea, necunoscută. Una dintre pozițiile posibile:
Necesar
Dat
Scrieți un algoritm pentru Robot care pictează toate celulele situate deasupra peretelui și adiacente acestuia, indiferent de dimensiunea peretelui și de poziția inițială a Robotului. De exemplu, pentru imaginea dată, Robotul trebuie să picteze peste următoarele celule:
Poziția finală a robotului poate fi arbitrară. La executarea algoritmului, robotul nu trebuie distrus.
Câmpul nesfârșit are un perete vertical lung. Lungimea zidului este necunoscută. Robotul se află într-una dintre cuștile situate direct în dreapta peretelui. Poziția inițială a robotului este, de asemenea, necunoscută. Una dintre pozițiile posibile ale robotului este prezentată în figură (robotul este desemnat prin litera „P”): Scrieți un algoritm care să lucreze care pictează toate celulele adiacente peretelui: în stânga, începând de la partea de sus nevopsită. unul și prin unul; in dreapta, incepand din partea de jos umbrita si printr-una. Robotul trebuie să picteze numai celule care îndeplinesc această condiție. De exemplu, pentru imaginea de mai sus, robotul trebuie să completeze următoarele celule (vezi imaginea): Locația finală a robotului poate fi arbitrară. Algoritmul trebuie să rezolve problema pentru o dimensiune arbitrară a peretelui și orice poziție de pornire validă a robotului. La executarea algoritmului, robotul nu trebuie distrus.
Scrieți un algoritm pentru Robot care pictează toate celulele situate în stânga peretelui vertical și deasupra peretelui orizontal și adiacente acestora. Robotul trebuie să picteze numai celule care îndeplinesc această condiție. De exemplu, pentru imaginea de mai sus, Robotul trebuie să coloreze în următoarele celule (vezi imaginea).
N Scrieți un algoritm pentru Robot care pictează celulele adiacente peretelui, de sus și de jos, începând din stânga și din toate celelalte. Robotul trebuie să picteze numai celule care îndeplinesc această condiție. De exemplu, pentru figura dată a) Robotul trebuie să picteze peste următoarele celule (vezi figura b).
Poziția finală a robotului poate fi arbitrară. Algoritmul trebuie să rezolve problema pentru o dimensiune arbitrară a peretelui și orice poziție inițială acceptabilă a robotului.
R | |||||
Câmpul nesfârșit are un perete vertical lung. Lungimea zidului este necunoscută. Robotul se află într-una dintre celulele situate direct în stânga peretelui. Poziția inițială a robotului este, de asemenea, necunoscută. Una dintre pozițiile posibile ale robotului este prezentată în figură (robotul este desemnat cu litera „P”):
in stanga totul;
in dreapta, incepand din partea de sus nevopsita si printr-una.
B
1102_GIA2011
Câmpul nesfârșit are doi pereți orizontali. Lungimea pereților este necunoscută. Distanța dintre pereți este necunoscută. Robotul este situat deasupra peretelui de jos într-o cușcă situată la marginea sa din stânga. Scrieți un algoritm pentru Robot care pictează toate celulele situate deasupra peretelui de jos și sub peretele de sus și adiacente acestora. Robotul trebuie să picteze numai celule care îndeplinesc această condiție. De exemplu, pentru imaginea de mai sus, robotul trebuie să picteze următoarele celule (vezi imaginea):
Locația finală a robotului poate fi arbitrară. Algoritmul trebuie să rezolve problema pentru o dimensiune arbitrară a câmpului și orice aranjare admisibilă a pereților în interiorul unui câmp dreptunghiular. La executarea algoritmului, robotul nu trebuie distrus.
ÎN
1103_GIA_2011
Există un perete orizontal pe un câmp nesfârșit. Lungimea zidului este necunoscută. Un perete vertical de lungime necunoscută se extinde în jos de la capătul drept al peretelui. Robotul este situat deasupra unui perete orizontal într-o cușcă situată la marginea sa din stânga. Figura arată una dintre modalitățile posibile de a poziționa pereții și robotul (robotul este desemnat prin litera „P”).
Scrieți un algoritm pentru Robot care pictează toate celulele situate deasupra peretelui orizontal și în dreapta peretelui vertical și adiacente acestora. Robotul trebuie să picteze numai celule care îndeplinesc această condiție. De exemplu, pentru imaginea de mai sus, Robotul trebuie să coloreze în următoarele celule (vezi imaginea).
Am învățat să-i cerem lucrări în continuare. Acum să trecem direct la compilarea algoritmilor pentru Robot folosind comenzi simple.
Dacă preferați informații în format video tutorial, atunci există un tutorial video pe site
Orice interpret trebuie să aibă un sistem de comandă ( SCHI — sistem de comandă a executorului). Sistem de comandă a executorului- setul tuturor comenzilor pe care executantul le poate executa. Ca exemplu, luați în considerare un câine dresat. Ea știe cum să execute unele comenzi - „Stați”, „Întindeți”, „În apropiere”, etc. Acesta este sistemul ei de comenzi.
Comenzi simple ale robotului
Robotul nostru are și un sistem de comandă. Astăzi ne vom uita la comenzi simple de robot. Sunt 5 în total:
- sus
- stânga
- dreapta
- vopsea peste
Rezultatul executării acestor comenzi este clar din numele lor:
- sus— mutați robotul cu o celulă în sus
- jos— mutați robotul cu o celulă în jos
- stânga— mutați robotul cu o celulă la stânga
- dreapta— mutați robotul cu o celulă la dreapta
- vopsea peste— pictați peste celula curentă (celula în care se află robotul).
Aceste comenzi pot fi scrise de la tastatură, sau puteți folosi taste rapide (prin apăsarea acestora, comenzile vor fi inserate automat):
- sus - Escape, Up (săgeată sus)
- jos - Escape, Down (săgeată în jos)
- stânga - Escape, Left (săgeată la stânga)
- dreapta - Escape, Right (săgeata dreapta)
- pictează peste – Evadare, Spațiu (spațiu)
Vă rugăm să rețineți că trebuie să introduceți combinația de taste rapide dorite nu intr-un fel cu care suntem obisnuiti! Suntem obișnuiți să apăsăm simultan tastele, dar aici avem nevoie de ele apăsați secvențial. De exemplu, pentru a introduce comanda sus, trebuie să apăsați Escape, să o eliberați și apoi să apăsați săgeata sus. Acest lucru trebuie amintit.
Acum suntem gata să scriem primul algoritm pentru Robot. Vă sugerez să începeți cu unul simplu - desenați un pătrat cu o latură de 3 celule. Merge!
Hai să lansăm Idol, el. Pot începe să scriu un program? Desigur că nu! Nu au fost! Hai să o facem. Vă sugerez să utilizați acesta:
Acum totul este gata. Să începem să scriem programul. În timp ce ea arată așa
Eliminarea simbolului „|”. și numiți algoritmul nostru „Pătrat”
Vă sugerez să desenați un pătrat, mișcându-se în sensul acelor de ceasornic. Mai întâi, să pictăm celula curentă dând comanda vopsea peste. Apoi facem un pas spre dreapta și pictăm din nou peste celulă. Și încă o dată pas la dreapta și pictează.
Să încercăm să rulăm programul și să vedem ce se întâmplă. Pentru a începe apăsați F9 sau un buton din bara de instrumente
Ca urmare, ar trebui să vedem o imagine ca aceasta
Dacă o astfel de fereastră Robot nu apare pentru dvs., atunci pe bara de instrumente faceți clic pe „ Afișați fereastra robotului„sau în meniul Robot selectați „ Afișați fereastra robotului". Să continuăm mai departe.
Acum ne vom deplasa în jos și vom picta partea dreaptă a pătratului:
jos
vopsea peste
jos
vopsea peste
Apoi să mergem la stânga, pictând marginea de jos a pătratului
stânga
vopsea peste
stânga
vopsea peste
Mai avem o celulă nevopsită. Hai să o vopsim
sus
vopsea peste
Totul este gata! Drept urmare, programul nostru arată astfel:
utilizați robotul
alg Pătrat
început
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
jos
vopsea peste
jos
vopsea peste