Subiectul lecției: „Gestionarea interpretului „Robot” Lucrul în mediul „Idol”. Sarcini practice pentru performerul robotului Sarcini conform standardului idol
Secțiuni: Informatică
Obiectivele lecției:
- Extindeți înțelegerea studenților cu privire la performanții algoritmilor;
- consolida ideea unui algoritm ca model al activității interpretului.
- dezvoltarea capacității de a înregistra, executa și depana algoritmi folosind comenzile robotului în mediul „Idol”
Furnizare de lecție:
- Sistemul de idoli;
- proiector multimedia;
- carduri de sarcini;
- calculatoare.
În timpul orelor
1. Moment organizatoric.
2. Verificarea asimilării materialului studiat.
- Sondaj blitz al studenților cu privire la cunoașterea principalelor caracteristici ale desenului: gama de sarcini de rezolvat, mediul executantului, sistemul comenzilor executantului, sistemul eșecurilor interpretului, modurile de operare ale interpretului.
- Discuția nr. 17 din d/z
- Verificare vizuală nr. 18-19 din d/z.
3. Explicarea materialului nou.
Robotul Performer acționează pe un câmp dreptunghiular în carouri. Între unele celule ale câmpului pot exista pereți. Unele celule pot fi vopsite peste.
Robotul ocupă exact o celulă a câmpului. După echipă sus, jos, stângaȘi dreapta Robotul se deplasează într-o celulă 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ă.
Prin comanda vopsea peste Robotul pictează celula în care se află. Dacă celula a fost deja pictată, aceasta va fi vopsită din nou, deși nu vor apărea modificări vizibile.
Este important de reținut că Robotul poate executa doar comenzi scrise corect. De exemplu, dacă în loc de comandă jos scrie jos, atunci Robotul nu va înțelege această intrare și va raporta imediat o eroare.
Întrebare: Amintiți-vă ce erori sunt numite în înregistrarea comenzilor. (Sintactic și logic.)
Să scriem un program, executând robotul să deseneze un meadru de patru ture pe un câmp în carouri.
început
. nts de 4 ori
. . dreapta
. . vopsea peste
. . stânga
. . vopsea peste
. . stânga
. . vopsea peste
. . sus
. . vopsea peste
. . sus
. . vopsea peste
. . dreapta
. . vopsea peste
. . dreapta
. . dreapta
. . dreapta
. . jos
. . jos
. kts
.
con
Artistul Robot poate accepta orice situație de pornire. Instrumente → Editați mediul de pornire al robotului. În fereastră construim un mediu de pornire și îl salvăm ca unul de pornire sub orice nume.
- Efectuați același desen folosind un algoritm auxiliar.
- Sugerați versiunea dvs. a programului.
utilizați robotul
alg
început
. meandre
. meandre
. meandre
con
Alg meandre
început
. dreapta
. vopsea peste
. stânga
. vopsea peste
. stânga
. vopsea peste
. sus
. vopsea peste
. sus
. vopsea peste
. dreapta
. vopsea peste
. dreapta
. dreapta
. dreapta
. jos
. jos
con
Rezumatul lecției.
Teme pentru acasă.
§ 3.1, 3.2 (1, 2) RT Nr. 1, 2, 7, 11 (p. 85) Bosova L. Informatica clasa a VII-a.
Robot Executor Sistem de comandă pentru performer Comenzi Robot Mutare: sus, jos, stânga, dreapta Robotul mută o celulă sus, jos, stânga, dreapta. Comanda vopsire pictează celula în care stă robotul. Verificarea adevărului condiției: liber în sus, liber în jos, liber în stânga, liber în dreapta Robotul verifică adevărul condiției că nu există nici un perete la celula în care se află robotul. Puteți folosi notația condițiilor compuse formate din operațiile logice AND, OR, NOT.
Performer Robot Editarea directă a mediului Toate comenzile pentru editarea mediului se execută cu ajutorul mouse-ului: plasați/eliminați un perete - faceți clic pe marginea dintre celule, pictați/ștergeți o celulă - faceți clic pe celulă, mutați Robotul - trageți mouse-ul la celula dorită.
Executor Robot Comenzi din meniu Robot Afișează câmpul Robot Face fereastra de observare robot vizibilă. Mediu de imprimare Creează un fișier PDF care ilustrează mediul curent în culoare sau alb-negru. Salvare situație în fișier Creează un fișier text cu o descriere a situației în format intern *.fil. Acest fișier poate fi încărcat ulterior ca mediu de pornire (comandă Schimbați mediul de pornire) sau la editarea mediului de pornire (comandă Deschideți fereastra de editare a mediului de pornire). Modificare ca mediu de pornire Setează un nou nume de fișier de mediu de pornire (folosind dialogul standard) și încarcă un nou mediu de pornire. Întoarcere la mediul de pornire Face mediul de pornire actual.
Performer Robot Imagine a situației curente în fereastra de observare Imaginea mediului actual este întotdeauna complet plasată în câmpul de lucru al ferestrei de observare Robot. Fundalul câmpului de lucru este verde. Celulele umplute sunt gri. Există linii negre subțiri între celule. Pereții sunt afișați ca linii groase galbene. În celula câmpului de lucru al ferestrei de observare, Robotul este reprezentat ca un diamant.
Exemplu de robot performer 1. Să creăm un algoritm numit „Mișcarea cavalerului”, astfel încât robotul să poată ajunge din punctul A în punctul B (Fig. 3). Algoritmul arată ca (Fig. 4.). După executarea sa, Robotul se va deplasa în punctul dorit (Fig. 5). Un algoritm scris în limbajul interpretului se numește program. Fig.3Fig.4 Fig.5
Și astăzi vom vorbi despre cicluri. Să ne dăm seama ce este un ciclu și cum să învățăm robotul nostru să efectueze algoritmi ciclici.
Asa de, ce este un ciclu? Imaginați-vă că suntem la o lecție de educație fizică și ne confruntăm cu o sarcină face 7 genuflexiuni. Această sarcină poate fi scrisă ca un algoritm liniar și apoi va arăta cam așa:
fă o ghemuială
fă o ghemuială
fă o ghemuială
fă o ghemuială
fă o ghemuială
fă o ghemuială
fă o ghemuială
Adică, am repetat comanda „fă o ghemuire” de 7 ori. Are sens să scrii 7 comenzi identice? Ar putea fi mai ușor să dai o comandă face 7 genuflexiuni? Desigur, este mai simplu și mai corect. Acesta este ciclul. Îți poți aminti chiar tu exemple de cicluri din viață - sunt destul de multe.
Prin urmare algoritm liniar, unde se repetă aceleași comenzi putem aranja ca algoritm ciclic- ca asta:
repeta de 7 ori
fă o ghemuială
sfârşitul ciclului
Așa am conceput ciclul în limbajul inventat de noi. Artistul Robot are, de asemenea, capacitatea de a înregistra cicluri. În plus, ciclurile sunt diferite. Opțiunea pe care tocmai ne-am uitat se numește buclă cu contor sau buclă cu parametru.
Tipuri de cicluri.
Bucla cu un contor.
Bucla cu contor folosit când se știe dinainte câte repetări trebuie făcute. În exemplul de mai sus cu genuflexiuni, acesta este exact cazul.
Pentru a scrie o buclă cu un numărător pentru executor, trebuie să-i cunoașteți sintaxa. Și el este așa:
nc<numărul de repetări> ori
<команда 1>
<команда 2>
…
<команда n>
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 buclei.
Să ne uităm la asta cu un exemplu.
Inițial, Robotul era în celula din stânga sus.
Să rezolvăm mai întâi problema liniar. În acest caz, vom picta celula curentă și vom muta 1 celulă la dreapta și programul va arăta astfel:
utilizați robotul
alg
început
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
dreapta
vopsea peste
dreapta
După cum puteți vedea, comenzile pentru a picta și în dreapta sunt repetate de 7 ori. Să rescriem acum programul folosind o buclă. Apropo, pentru a introduce un ciclu în programul dvs., puteți merge la meniu Introduce selectați elementul tsk-tsk-tsk sau apăsați una dintre combinațiile de taste Esc, P(litera rusă R) sau Esc, H(litera latină H). în plus tastele trebuie apăsate secvenţial- mai întâi Esc, eliberați-l și abia apoi P sau H.
Așa că aici este al nostru program în buclă va arata asa:
utilizați robotul
nts de 7 ori
vopsea peste
dreapta
Dacă îl rulăm, vom vedea că rezultatul va fi același - 7 celule umplute. Totuși, programul a devenit mai scurt și mult mai inteligent din punct de vedere algoritmic!
Ca încălzire și întărire, vă sugerez să scrieți singur un program pentru Robot, care va desena un pătrat cu o latură de 7 celule. Desigur, folosind o buclă. Aștept o soluție în comentarii.
Bucla cu condiție.
La rezolvarea problemei 19 a informaticii academice de stat în informatică cu un robot, utilizarea unei bucle cu un contor nu va funcționa. Din moment ce câmpul există, de regulă, nesfârșit, iar pereții nu au o lungime anume. Prin urmare, nu vom putea determina numărul de repetări pentru o buclă cu un contor. Dar nu contează - ne va ajuta buclă cu condiție.
Să revenim la educația fizică și să schimbăm problema. La urma urmei, cineva s-ar putea să nu poată face 7 genuflexiuni, în timp ce altul poate face 27. Este posibil să ținem cont de acest lucru la crearea unui ciclu? Cu siguranță. Numai că acum vom folosi nu un numărător (număr de repetări), ci o condiție. De exemplu, înainte de a obosi, fă genuflexiuni. În acest caz, persoana nu va face un anumit număr de genuflexiuni, ci se va ghemui până când obosește. Și ciclul nostru în limbaj abstract va lua următoarea formă:
Pa nu obosit
fă o ghemuială
sfârşitul ciclului
Cuvintele nu sunt obosite în cazul nostru - aceasta este o condiție. Când este adevărat, bucla este executată. Dacă este fals (obosit), corpul buclei nu va fi executat. 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
Dar în condițiile sarcinii 19 din GIA sunt indicate doar primele 4 Așa că le vom folosi doar.
Acum să rezolvăm următoarea sarcină pentru Robot - trageți o linie verticală de la marginea stângă la dreapta câmpului folosind o buclă cu o condiție. Inițial, robotul este situat în colțul din stânga sus.
Să formulăm mai întâi un algoritm verbal - adică să descriem în cuvinte ce trebuie să facă Robotul. Acest algoritm va suna cam așa:
« În timp ce există spațiu liber în dreapta, faceți un pas spre dreapta și pictați celula »
Drept urmare, Robotul va alerga prin toate celulele din dreapta și le va picta până când va apărea un perete în dreapta.
Codul sursă al programului nostru pentru Robot va fi cam așa:
utilizați robotul
nts dreptul este gratuit pentru moment
dreapta
vopsea peste
Ca urmare a executării acestui program, vom vedea următoarea imagine:
Artistul robot are un sistem de comandă. Sa luam in considerare comenzi simple de robot. Sunt 5 în total:
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
Exercitiul 1. Desenați un pătrat cu latura de 3 celule.
Lansarea Idol
Eliminarea simbolului „|”. și numiți algoritmul nostru „Pătrat” (lângă cuvântul funcție alg noi scriem Pătrat)
vopsea peste
vopsea peste
vopsea peste
Rulați programul și vedeți ce se întâmplă. Pentru a începe apăsați F9 sau un buton din bara de instrumente Executați programul
Dacă o astfel de fereastră Robot nu apare pentru dvs., atunci pe bara de instrumente faceți clic pe „ Afișează fereastra robotului„sau în meniul Robot selectați „ Afișează fereastra robotului". Să continuăm mai departe:
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 Square
vopsea peste
vopsea peste
vopsea peste
vopsea peste
vopsea peste
vopsea peste
vopsea peste
vopsea peste
Sarcina 2.Folosind comenzi simple de robot, scrie un program pentru a desena o scrisoare P, R, Sh, Shch, T, N.
Bucla cu condiție.
Artistul robot are mai multe condiții: sus liber jos liber stânga liber dreapta liber sus perete jos perete
perete stânga perete drept
Sarcina 3.
Desenați o linie verticală de la marginea stângă la dreapta a câmpului folosind o buclă cu o condiție. Inițial, robotul este situat în colțul din stânga sus.
Codul sursă al programului nostru pentru Robot va fi cam așa:
utilizați robotul
alg
început
vopsea peste
nts dreptul este gratuit pentru moment
dreapta
vopsea peste
kts
con
Ca urmare a executării acestui program, vom vedea următoarea imagine:
Sarcina 4.Scrieți un program care va crea un cadru în jurul zonei de lucru a Robotului, indiferent de dimensiunea acestuia. Folosind bucle condiționate, desigur. Până la urmă ar trebui să arate așa:
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 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
Structură buclă cu condiție
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 inceput 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 este liber în dreapta
vopsea peste
dreapta
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ă
în timp ce 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 sunt încă liberi î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 sunt încă liberi î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
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 este liber în dreapta
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 este liber în dreapta
vopsea peste
dreapta
nu este încă liber pe dreapta
vopsea peste
jos