Sarcini de robot. Robot interpret
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.
Faceți clic pe Editați mediul
Robot interpret. Comenzi simple.
- Sus
- jos
- stânga
- corect
- 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 ori
…
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
corect
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ă stare Că
- 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
- corect
- 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
corect
în timp ce vârful este liber
corect
în timp ce este liber în dreapta
vopsea peste
corect
nu este încă liber pe dreapta
vopsea peste
jos
în timp ce este liber în dreapta
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ă
până când stânga este liberă
vopsea peste
nu este încă liber pe dreapta
vopsea peste
în timp ce este liber în dreapta
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
corect
vopsea peste
corect
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 este liber în dreapta
corect
î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 este liber în dreapta
vopsea peste
corect
î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
corect
nu încă (gratuit deasupra)
vopsea peste
corect
Răspuns la sarcina nr. 16
nu este încă liber pe dreapta
vopsea peste
jos
vopsea peste
corect
până când vârful este liber
vopsea peste
corect
în timp ce vârful este liber
Sus
în timp ce este liber în dreapta
vopsea peste
corect
nu este încă liber pe dreapta
vopsea peste
jos
Sarcina profesorului este de a merge pe această cale împreună cu elevul, nu asigurându-se împotriva eșecului, ci prevenind dezamăgirile din cauza posibilelor dificultăți. Este foarte important să organizăm cursuri astfel încât copiii înșiși să descopere lucruri noi prin activități care au sens pentru ei.
Cum ajută un robot să studieze informatica? Voi indica doar câteva subiecte informatice pe care se bazează robotica.
Subiectul „Fișiere și sistem de fișiere”.
Elevul avea la dispoziție un microcomputer LEGO®NXT din setul educațional LEGO Mindstorms Educație NXT. Controlează-l sistem de fișiere are loc folosind comenzi standard, dar deoarece volumul memoriei nu este mare, controlul a ceea ce este necesar și a ceea ce nu este necesar trebuie efectuat în mod constant. Pentru a exprima acțiunile robotului, pentru a afișa o imagine sau pentru a adăuga la biblioteca de programe de lucru, trebuie să operați cu concepte de bază ale informaticii: fișier, tip de fișier, cale de fișier, meniu, folder.
Subiect: „Procesele informaționale”, „Codificarea informațiilor”.
Kitul robotizat este echipat cu senzori care înregistrează informații audio, tactile și video. Odată digitalizate, informațiile pot fi afișate pe un ecran de afișare. O funcție specială a microcomputerului face posibilă experimentarea cu senzori și motoare folosind programe gata de rulare. După efectuarea unei serii de experimente cu senzori, apare o înțelegere: de ce un senzor de distanță cu ultrasunete funcționează mai lent decât un senzor de lumină infraroșie, cum sunetul se transformă într-un cod digital și așa mai departe. Studiul proceselor informaționale și al principiilor de codificare a informațiilor oferă o înțelegere mai profundă a esenței tehnologiei informației.
Tema: Tehnologii de comunicare.
Microcomputerul LEGO®NXT acceptă tehnologia comunicare fără fir. Folosind funcția Bluetooth, puteți seta conexiune fără firîntre microcomputerul NXT și alte dispozitive care au Dispozitiv Bluetooth, de exemplu, cu alte NXT, cu telefoane mobile sau cu calculatoare. Prin stabilirea unei conexiuni Bluetooth, este posibil să: descărcați programe de pe un computer de la distanță; trimite programe de pe alte dispozitive (nu de pe un computer), inclusiv de pe NXT; trimite programe atât către NXT-uri individuale, cât și către grupurile acestora. Această tehnologie face posibilă controlul robotului folosind un telefon mobil.
Subiecte „Algoritmi. Executor de algoritm”, „Mediu de programare”.
Pentru familiarizarea inițială cu robotul, puteți programa direct unitatea NXT fără a accesa un computer. Direct pe ecranul de afișare, folosind un șablon de cinci comenzi, puteți crea un program simpluși bucla-l. Cu toate acestea, este imposibil să faci fără cunoașterea structurilor algoritmice de bază și fără stăpânirea mediului de programare. Abilitatea de a programa robotul îl face un performer universal, capabil să rezolve o varietate de probleme. Ar trebui să începeți să stăpâniți tehnologia de programare cu medii de programare vizuală, apoi să treceți la medii mai puternice și mai moderne, orientate spre evenimente.
Astfel, robotica va necesita cunoștințe de bază de informatică, iar dorința inepuizabilă a elevului de a-și face robotul „cel mai bun” îl împinge să stăpânească noi cunoștințe.
De ce poate fi numit un robot un instrument de predare ideal? Pentru că acest instrument face posibilă crearea unui mediu de învățare care va folosi dorințele naturale ale copilului de a se juca, de a crea și de a comunica cu semenii. Deci, putem evidenția avantajele roboticii ca instrument de predare:
. Achiziția de cunoștințe are loc în timpul jocului.
. Construirea unui robot oferă libertate creativă.
. Majoritatea elevilor au dorința de a-și îmbunătăți munca.
Ca exemplu, aș dori să citez modelul unui „Robot care oferă bunătăți gratuite”, creat de un elev de clasa a VI-a în cadrul cursului „Programare robot” în cadrul activităților extracurriculare. Robotul este asamblat din setul LEGO MINDSTORMS NXT Education 9797 conform modelului standard Alpharex 1.0 și este completat de un senzor de culoare pentru a indica starea robotului și o tavă pentru dulciuri.
Scopul lucrării este de a implementa un model de mers uman pe cât posibil cu resursele disponibile. Mișcarea fiecărui picior este controlată de un motor și un ansamblu mecanic de viteze și pârghii. O pârghie mișcă piciorul în sus și în jos, cealaltă îl mișcă înainte. În acest caz, corpul se abate spre piciorul de susținere, datorită căruia robotul menține echilibrul. Acest mers se numește „tâșnire”
Un motor separat controlează senzorul de distanță și brațele de pârghie care țin senzorul tactil și senzorul de culoare. Tava de tratare este fixă.
Robotul este programat să acționeze ca un distribuitor, de exemplu, delicii gratuite, conform următorului algoritm de comportament. Robotul își însoțește mișcarea cu o frază directă: „Sunt robotul Alpharex, ofer un răsfăț gratuit!” O persoană care dorește să ia contact cu robotul îl poate opri printr-un gest. După oprire, robotul spune fraza: „Ajută-te și apasă butonul!” După ce a luat bomboana, persoana trebuie să apese butonul o dată în semn de recunoștință. La trei secunde după oprire, robotul va continua să se miște. Când mâncărurile se epuizează (robotul este programat să aibă un anumit număr de bomboane pe tavă), robotul își va lua la revedere, indicatorul roșu se va aprinde și robotul se va opri.
Programul de control al robotului este scris în mediul NXT Programming 2.0.
Performer Robotul există într-un câmp dreptunghiular, împărțit în celule, între care pot exista pereți și se potrivește în întregime într-o singură celulă.
Robotul se poate mișca pe câmp, picta celule, poate măsura temperatura și radiația. Robotul nu poate trece prin pereți, dar poate verifica pentru a vedea dacă există un perete lângă el.
- Sistemul de comandă al interpretului „Robot” include:
- 5 comenzi care declanșează acțiunile robotului (stânga, dreapta, sus, jos, pictură)
- 10 comenzi de verificare a stării:
- 8 comenzi de forma [stânga/dreapta/jos/sus] [perete/liber]
- 2 comenzi de tipul celulei [complete/gol]
2 comenzi de masurare (temperatura, radiatii)
Comenzi de acțiune
Verificați comenzile | Echipă |
Descriere | log-ul din stânga este gratuit |
Returnează da dacă robotul se poate deplasa la stânga, altfel nu. | log-ul din dreapta este gratuit |
Returnează da dacă robotul se poate deplasa la dreapta, altfel nu. | log de sus gratuit |
Returnează da dacă robotul se poate mișca în sus, altfel nu. | log mai jos gratuit |
Returnează da dacă robotul se poate mișca în jos, altfel nu. | buștean perete stâng |
Returnează da dacă există un perete în stânga robotului, în caz contrar nu. | buștean perete din dreapta |
Returnează da dacă există un perete în dreapta robotului, în caz contrar nu. | log pe peretele de sus |
Returnează da dacă există un perete deasupra robotului, în caz contrar nu. | bușteni sub perete |
Returnează da dacă există un perete sub robot, în caz contrar nu. | celula de jurnal este completată |
Returnează da dacă celula este completată și nu dacă celula nu este completată. | jurnal celula curata |
Returnează nu dacă celula este completată și da dacă celula nu este completată.
Comenzi de măsurare
Algoritmul ar putea arăta astfel:
utilizați robotul
alg exemplu 1
început
. jos
. corect
. Sus
con
Dacă încercați să ghidați robotul prin perete, va avea loc un eșec. Robotul se va izbi de perete și nu va mai putea urma comenzile.
Să scriem un algoritm pentru un robot care trece printr-un labirint din punctul A în B:
utilizați robotul
Alg de la A la B
început
. corect
. sus ; sus ;
corect; jos ; jos ; corect
con
. sus ; sus ; corect;
jos ; jos ; corect
Comenzile pentru trecerea fiecărei secțiuni pot fi grupate într-o singură linie - acest lucru scurtează înregistrarea algoritmului și o face mai ușor de înțeles. Pentru a scrie comenzi pe o singură linie, acestea trebuie separate prin punct și virgulă.
Soluția 20.1 a sarcinii OGE 2017 în informatică din versiunea demo. Aceasta este o sarcină din partea a doua cu un răspuns detaliat, de un nivel ridicat de dificultate. Timpul estimat de finalizare a sarcinii este de 45 de minute. Pentru această sarcină puteți nota maximum 2 puncte. Sarcina este efectuată pe computer. Elemente de conținut verificate:.
- capacitatea de a scrie un scurt algoritm în mediu
executor oficial
— Descrierea elementelor de conținut testate în timpul examenului:,
- algoritm,
proprietățile algoritmilor
— moduri de scriere a algoritmilor,
- diagrame bloc,
— - o idee de programare,,
- constructii algoritmice,
valori booleene
- operațiuni,
- expresii,
— împărțirea sarcinii în subsarcini,
- algoritm auxiliar,
— obiecte prelucrate (lanțuri de caractere, numere, liste, arbori).
20.1 sarcină OGE 2017 în informatică
Sus
jos
stânga
corect
Robotul Performer poate naviga printr-un labirint desenat pe un plan împărțit în celule. Între celulele adiacente (pe laterale) poate exista un perete prin care Robotul nu poate trece.
Robotul are nouă comenzi. Patru comenzi sunt comenzi de comandă: vopsea peste La executarea oricăreia dintre aceste comenzi, Robotul mută o celulă, respectiv: sus, jos ↓, stânga ←, dreapta →. Dacă robotul primește o comandă de a trece printr-un perete, se va prăbuși.
Robotul are și echipă
, în care este pictată celula în care se află în prezent Robotul.
liber de jos
lăsat liber
liber pe dreapta
Încă patru comenzi sunt comenzi de verificare a stării. Aceste comenzi verifică dacă drumul este liber pentru robot în fiecare dintre cele patru direcții posibile: liber în vârf Aceste comenzi pot fi folosite împreună cu condiția „
Dacă stare Că
succesiune de comenzi
dacă
", având următoarea formă:
Toate Aici condiția este una dintre comenzile de verificare a stării.
Secvență de comandă
dacă dreptul este liber atunci
corect
vopsea peste
dacă
Într-o singură condiție, puteți utiliza mai multe comenzi de verificare a condițiilor folosind conective logice Şi, sau, Nu, De exemplu:
dacă (dreptul este liber) și (nu mai jos este gratuit) atunci
corect
dacă
Pentru a repeta o secvență de comenzi, puteți folosi o buclă " la revedere", având următoarea formă:
nts pentru moment stare
succesiune de comenzi
kts
De exemplu, pentru a vă deplasa la dreapta cât timp este posibil, puteți utiliza următorul algoritm:
nts dreptul este gratuit pentru moment
corect
kts
Finalizați sarcina.
Câmpul nesfârșit are pereți orizontali și verticali. Capătul stâng al peretelui orizontal este conectat la capătul de jos al peretelui vertical. Lungimea peretelui necunoscută. Există exact un pasaj în peretele vertical, locația exactă a pasajului și lățimea acestuia sunt necunoscute. Robotul se află într-o cușcă situată direct deasupra peretelui orizontal la capătul său drept.
Figura arată unul dintre moduri posibile locația pereților și a Robotului (robotul este desemnat prin litera „P”).
Scrieți un algoritm pentru Robot care pictează toate celulele situate direct în stânga și în dreapta unui perete vertical. Pasajul trebuie să rămână nevopsit. 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).
La executarea algoritmului, Robotul nu trebuie distrus execuția algoritmului trebuie să fie finalizată. Locația finală a robotului poate fi arbitrară.
Algoritmul trebuie să rezolve problema pentru orice aranjare admisă a pereților și orice locație și dimensiune a trecerii în interiorul peretelui.
Algoritmul poate fi executat într-un mediu executor formal sau scris într-un editor de text.
Salvați algoritmul în fișier text. Numele fișierului și directorul pentru salvare vă vor fi furnizate de organizatorii examenului.
Soluția 20.1 a temei OGE 2017 în informatică
Vom înregistra comenzile interpretului îndrăzneţ font și comentarii - cursive. Începutul unui comentariu va fi notat cu simbolul „|” ( Nu este necesar să scrieți comentarii în timpul lucrului).
|Ne deplasăm spre stânga până ajungem la un perete vertical.
nts stânga este liberă deocamdată
stânga
kts
|Urcăm până ajungem la pasajul din perete și pictăm peste celule.
nts nu este încă liber în stânga
vopsea peste
Sus
kts
|Ne deplasăm până la capătul peretelui și pictăm peste celule.
nts nu este încă liber în stânga
vopsea peste
Sus
kts
|Ocolim zidul.
stânga
jos
|Ne coboram pana ajungem la pasajul din perete si pictam peste celule.
nts nu este încă liber pe dreapta
vopsea peste
jos
kts
|Coborăm până la capătul peretelui și pictăm peste celule.
nts nu este încă liber pe dreapta
vopsea peste
jos
kts
Sunt posibile și alte soluții.
Este permisă utilizarea unei sintaxe diferite pentru instrucțiunile interpretului, care este mai familiară studenților.
Prezența erorilor sintactice individuale este permisă, dar nu denaturează intenția autorului soluției.
Se acordă 2 puncte pentru sarcină dacă
Algoritmul funcționează corect pentru toate datele de intrare valide.
Se acordă 1 punct pentru sarcină dacă
Pentru toate datele de intrare valide, următorul lucru este adevărat:
1) execuția algoritmului este finalizată, iar Robotul nu se prăbușește;
2) nu sunt pictate peste 10 celule suplimentare;
3) nu au rămas nevopsite mai mult de 10 celule din cele care ar fi trebuit pictate.
Se acordă 0 puncte pentru o sarcină dacă
Sarcina a fost finalizată incorect, adică nu au fost îndeplinite condițiile pentru acordarea a 1 sau 2 puncte.