Zadaci robota. Performer Robot
Idol program
Performer Robot
Ko je robot izvođač?
- Zamislite karirano polje (poput lista iz sveske sa kariranom šarom) na kojem se nalazi određeni predmet, koji ćemo nazvati Robot. Koristeći posebne komande, možemo kontrolisati ovog robota - pomicati ga po ćelijama, slikati preko ćelija. I u većini slučajeva, naš zadatak će biti da napišemo program za robota, u kojem će obojiti određene ćelije.
Postavljanje idola okruženja za izvođača Robot
- Pokrenuti program Idol izgleda ovako.
Početno okruženje robota
- Prije početka izvršavanja programa potrebno je postaviti početno okruženje za Robot executor. To znači postavljanje robota u željenu poziciju, postavljanje zidova, farbanje potrebnih ćelija itd. Ovaj korak je veoma važan. Ako ga zanemarite, program možda neće raditi ispravno ili se čak srušiti.
Kliknite na Uredi okruženje
Performer Robot. Jednostavne komande.
- gore
- dolje
- lijevo
- u pravu
- farbati preko
Rezultat izvršavanja ovih naredbi je jasan iz njihovih naziva:
- gore - pomaknite robota za jednu ćeliju gore
- dolje - pomaknite robota za jednu ćeliju dolje
- lijevo - pomjerite robota jednu ćeliju ulijevo
- desno - pomeri robota jednu ćeliju udesno
- paint over - prebojite trenutnu ćeliju (ćelija u kojoj se robot nalazi).
Primjer algoritma
- Prvo morate napisati frazu:
- koristiti Robot
Ako znate koliko ćelija treba obojiti, tada će algoritam rješenja biti sljedeći!
Zadatak br. 1
- Napišite program koji će riješiti sljedeći problem ako znate koliko ćelija treba zasjeniti
Ciklusi
- 1. Petlja sa brojačem koristi se kada se unapred zna koliko ponavljanja treba uraditi.
nc vrijeme
…
kts
Ovdje moramo odrediti broj ponavljanja (broj) i naredbe koje će se ponavljati. Pozivaju se naredbe koje se ponavljaju u petlji tijelo ciklusa.
Zadatak br. 2
- Napišite program koji će riješiti sljedeći problem koristeći petlju sa brojačem
- 2. Petlja sa uslovom - dok je uslov istinit, petlja je zadovoljena, ako je netačan, nije zadovoljena
- Robot izvođač ima nekoliko uslova
besplatno na vrhu
slobodan odozdo
ostavljena slobodno
slobodno na desnoj strani
zid iznad
zid ispod
lijevog zida
zid sa desne strane
- Čestice koje možete koristiti: NE, I, ILI
Struktura uslovne petlje
nts za sada slobodno na desnoj strani
u pravu
farbati preko
kts
Zadatak br. 3
- Napišite program koji će riješiti sljedeći problem koristeći uvjetnu petlju:
Zadatak br. 4
- Napišite program za rješavanje sljedećeg problema koristeći uvjetne petlje:
Rješavanje problema:
- 2. Robot se mora pomeriti iz početne pozicije u konačnu poziciju, farbajući zidove
Zadatak br. 5
- Postoji horizontalni zid na beskrajnom polju. Dužina zida nije poznata. Robot se nalazi na vrhu zida na njegovom lijevom kraju. Slika prikazuje lokaciju robota u odnosu na zid (robot je označen slovom "P"):
Odgovor na zadatak br. 5
- nc još ne (slobodno dno)
farbati preko
Početak ciklusa (nc) i uslov (još nije (slobodan odozdo)) ispisani su u jednom redu.
Dizajn Ako
- gore slobodno dolje slobodno lijevo slobodno desno slobodno
- Ove komande se mogu koristiti zajedno sa uslovom "ako", koji ima sljedeći oblik:
- Ako stanje To
- redosled komandi
- Na primjer, da pomaknete jednu ćeliju udesno, ako nema zida s desne strane, i obojite ćeliju, možete koristiti sljedeći algoritam:
- ako je pravo slobodno onda
- u pravu
- farbati preko
Zadatak br. 7
Dužina zidova nije poznata.
Odgovor na zadatak br. 7
dok vrh ne bude slobodan
farbati preko
u pravu
dok je vrh slobodan
u pravu
dok je sa desne strane slobodan
farbati preko
u pravu
još nije slobodan na desnoj strani
farbati preko
dolje
dok je sa desne strane slobodan
dolje
još nije slobodan na desnoj strani
farbati preko
dolje
Zadatak br. 8
Dužina zidova nije poznata.
Svaki zid ima tačno jedan prolaz, a tačna lokacija prolaza i njegova širina nisu poznati.
Odgovor na zadatak br. 8
dok je vrh slobodan
dok vrh ne bude slobodan
farbati preko
dok je vrh slobodan
dok vrh ne bude slobodan
farbati preko
dok se dno ne oslobodi
farbati preko
dok je dno slobodno
dok se dno ne oslobodi
farbati preko
Zadatak br. 9
Dužina zidova nije poznata.
Svaki zid ima tačno jedan prolaz, a tačna lokacija prolaza i njegova širina nisu poznati.
Odgovor na zadatak br. 9
dok je dno slobodno
dok se dno ne oslobodi
farbati preko
dok je dno slobodno
dok se dno ne oslobodi
farbati preko
dok vrh ne bude slobodan
farbati preko
dok je vrh slobodan
dok vrh ne bude slobodan
farbati preko
Zadatak br. 10
Dužina zidova nije poznata.
Svaki zid ima tačno jedan prolaz, a tačna lokacija prolaza i njegova širina nisu poznati.
Odgovor na zadatak br. 10
dok je leva slobodna
dok je leva slobodna
farbati preko
dok je leva slobodna
dok lijevo ne bude slobodno
farbati preko
još nije slobodan na desnoj strani
farbati preko
dok je sa desne strane slobodan
još nije slobodan na desnoj strani
farbati preko
Zadatak br. 11
Dužina zidova nije poznata.
Svaki zid ima tačno jedan prolaz, a tačna lokacija prolaza i njegova širina nisu poznati.
Odgovor na zadatak br. 11
dok vrh ne bude slobodan
dok vrh ne bude slobodan
farbati preko
dok je dno slobodno
dok vrh ne bude slobodan
farbati preko
Zadatak br. 12
Na beskrajnom polju je stepenište. Stepenište se prvo spušta s desna na lijevo, a zatim slijeva na desno. Visina svake stepenice je jedan kvadrat, širina dva kvadrata. Robot je desno od gornje stepenice stepenica. Broj stepenica koji vode lijevo i broj stepenica koji vode desno su nepoznati. Na slici je prikazan jedan od mogućih načina pozicioniranja merdevina i robota (Robot je označen slovom „P“).
Odgovor na zadatak br. 12
Spuštamo se ispod stepenica s desna na lijevo dok ne dođemo do spoja stepenica:
nts dno je za sada besplatno
dolje
lijevo
lijevo
Spuštamo se do kraja silaznog stepeništa, slikajući potrebne ćelije na putu:
nts još nije slobodan na lijevoj strani
farbati preko
u pravu
farbati preko
u pravu
dolje
Odgovor na zadatak br. 13
nts lijevo je za sada besplatno
farbati preko
lijevo
gore
nts još nije slobodan na lijevoj strani
farbati preko
gore
Zadatak br. 14
Na beskonačnom polju nalazi se pravougaonik omeđen zidovima. Dužine stranica pravougaonika su nepoznate. Robot je unutar pravougaonika. Na slici je prikazan jedan od mogućih načina pozicioniranja zidova i robota (Robot je označen slovom “P”).
Odgovor na zadatak br. 14
dok je sa desne strane slobodan
u pravu
dok je vrh slobodan
gore
farbati preko
nts lijevo je za sada besplatno
lijevo
farbati preko
Odgovor na zadatak br. 15
dok je sa desne strane slobodan
farbati preko
u pravu
dok je dno slobodno
farbati preko
dolje
farbati preko
još ne (slobodno dno)
lijevo
dolje
još ne (slobodno desno)
farbati preko
dolje
farbati preko
u pravu
još nije (slobodan na vrhu)
farbati preko
u pravu
Odgovor na zadatak br. 16
još nije slobodan na desnoj strani
farbati preko
dolje
farbati preko
u pravu
dok vrh ne bude slobodan
farbati preko
u pravu
dok je vrh slobodan
gore
dok je sa desne strane slobodan
farbati preko
u pravu
još nije slobodan na desnoj strani
farbati preko
dolje
Zadatak nastavnika je da ide ovim putem sa učenikom, ne osiguravajući se od neuspjeha, već sprječavajući razočaranje zbog mogućih poteškoća. Vrlo je važno organizirati nastavu tako da djeca sama otkrivaju nove stvari kroz aktivnosti koje su im značajne.
Kako robot pomaže u učenju informatike? Naznačiću samo nekoliko informatičkih tema na kojima se bazira robotika.
Tema "Datoteke i sistem datoteka".
Učenik je imao na raspolaganju LEGO®NXT mikroračunar iz obrazovnog kompleta. LEGO Mindstorms NXT Education. Kontrolišite to sistem datoteka se dešava korišćenjem standardnih komandi, ali pošto zapremina memorije nije velika, kontrola šta je potrebno, a šta ne mora se vršiti stalno. Da biste izrazili radnje robota, prikazali sliku ili dodali u biblioteku radnih programa, morate raditi s osnovnim konceptima informatike: datoteka, tip datoteke, putanja datoteke, izbornik, mapa.
Tema: “Informacijski procesi”, “Kodiranje informacija”.
Robotski komplet opremljen je senzorima koji snimaju audio, taktilne i video informacije. Kada se digitalizuju, informacije se mogu prikazati na ekranu. Posebna funkcija mikroračunara omogućava eksperimentiranje sa senzorima i motorima pomoću programa spremnih za rad. Nakon provođenja serije eksperimenata sa senzorima, dolazi do razumijevanja: zašto ultrazvučni senzor udaljenosti radi sporije od infracrvenog svjetlosnog senzora, kako se zvuk pretvara u digitalni kod, itd. Proučavanje informacionih procesa i principa informacionog kodiranja omogućava dublje razumevanje suštine informacione tehnologije.
Tema: Komunikacione tehnologije.
LEGO®NXT mikroračunar podržava tehnologiju bežičnu komunikaciju. Koristeći Bluetooth funkciju, možete podesiti bežičnu vezu između NXT mikroračunara i drugih uređaja koji imaju Bluetooth uređaj, na primjer, sa drugim NXT-om, sa mobilni telefoni ili sa kompjuterima. Uspostavljanjem Bluetooth veze moguće je: daljinski preuzimati programe sa računara; slanje programa sa drugih uređaja (ne sa računara), uključujući i sa NXT-a; šaljite programe i pojedinačnim NXT-ovima i njihovim grupama. Ova tehnologija omogućava upravljanje robotom pomoću mobilnog telefona.
Teme “Algoritmi. Algoritam Executor”, “Programsko okruženje”.
Za početno upoznavanje sa robotom, možete direktno programirati NXT jedinicu bez pristupa kompjuteru. Direktno na ekranu, koristeći predložak od pet komandi, možete kreirati jednostavan program i zamotajte ga. Međutim, nemoguće je bez poznavanja osnovnih algoritamskih struktura i ovladavanja programskim okruženjem. Sposobnost programiranja robota čini ga univerzalnim izvođačem, sposobnim za rješavanje raznih problema. Trebali biste početi savladavati tehnologiju programiranja sa okruženjima vizualnog programiranja, a zatim prijeći na moćnija i modernija okruženja orijentirana na događaje.
Dakle, robotika će zahtijevati osnovno znanje informatike, a neiscrpna želja učenika da svog robota učini „najboljim“ tjera ga na savladavanje novih znanja.
Zašto se robot može nazvati idealnim nastavnim sredstvom? Jer ovaj alat omogućava stvaranje okruženja za učenje koje će iskoristiti prirodnu želju djeteta za igrom, stvaranjem i komunikacijom s vršnjacima. Dakle, možemo istaći prednosti robotike kao nastavnog alata:
. Sticanje znanja se dešava tokom igre.
. Izgradnja robota nudi kreativnu slobodu.
. Većina učenika ima želju da poboljša svoj rad.
Kao primjer navela bih model „Robot koji dostavlja besplatne poslastice“, koji je napravio učenik 6. razreda u okviru kursa „Programiranje robota“ tokom vannastavnih aktivnosti. Robot je sastavljen od seta LEGO MINDSTORMS NXT Education 9797 prema standardnom modelu Alpharex 1.0, a dopunjen je senzorom boje koji pokazuje status robota i poslužavnikom za poslastice.
Cilj rada je implementirati model ljudskog hoda što je više moguće uz raspoložive resurse. Kretanje svake noge kontrolira motor i mehanički sklop zupčanika i poluga. Jedna poluga pomiče nogu gore-dolje, druga je pomiče naprijed. U tom slučaju, tijelo se skreće prema nozi za potporu, zbog čega robot održava ravnotežu. Ovaj hod se zove "šuškanje"
Zaseban motor kontrolira senzor udaljenosti i poluge koje drže senzor dodira i senzor boje. Posuda za poslastice je fiksirana.
Robot je programiran da djeluje kao dostavljač, na primjer, besplatnih poslastica, prema sljedećem algoritmu ponašanja. Robot prati svoje kretanje direktnom frazom: „Ja sam robot Alpharex, nudim besplatnu poslasticu!“ Osoba koja želi da uspostavi kontakt sa robotom može ga zaustaviti pokretom. Nakon zaustavljanja, robot izgovara frazu: "Posluži se i pritisnite dugme!" Nakon što uzme slatkiš, osoba mora jednom pritisnuti dugme u znak zahvalnosti. Tri sekunde nakon zaustavljanja, robot će nastaviti da se kreće. Kada ponestane poslastica (robot je programiran da ima određeni broj bombona na poslužavniku), robot će se pozdraviti, crveni indikator će zasvijetliti i robot će stati.
Program za upravljanje robotom napisan je u okruženju NXT Programming 2.0.
Izvođač Robot postoji u pravokutnom polju, podijeljenom na ćelije, između kojih mogu postojati zidovi i potpuno se uklapa u jednu ćeliju.
Robot se može kretati po polju, farbati ćelije, mjeriti temperaturu i zračenje. Robot ne može prolaziti kroz zidove, ali može provjeriti da li postoji zid pored njega.
- Sistem komandi izvođača "Robot" uključuje:
- 5 komandi koje pokreću radnje robota (lijevo, desno, gore, dolje, slikanje)
- 10 naredbi za provjeru stanja:
- 8 komandi oblika [lijevo/desno/dolje/gore] [zid/slobodno]
- 2 naredbe tipa ćelije [popunjeno/prazno]
2 komande za mjerenje (temperatura, zračenje)
Akcione komande
Provjerite komande | Tim |
Opis | log na lijevoj strani je besplatan |
Vraća da ako se robot može pomaknuti ulijevo, inače ne. | log na desnoj strani je besplatan |
Vraća da ako se robot može pomaknuti udesno, inače ne. | log odozgo besplatno |
Vraća da ako se robot može pomaknuti gore, u suprotnom ne. | prijavite se ispod besplatno |
Vraća da ako se robot može kretati prema dolje, inače ne. | log lijevi zid |
Vraća da ako postoji zid lijevo od robota, inače ne. | log desni zid |
Vraća da ako postoji zid desno od robota, inače ne. | log na gornjem zidu |
Vraća da ako postoji zid iznad robota, inače ne. | trupac ispod zida |
Vraća da ako postoji zid ispod robota, inače ne. | ćelija dnevnika je popunjena |
Vraća da ako je ćelija popunjena i ne ako ćelija nije popunjena. | log ćelija čista |
Vraća ne ako je ćelija popunjena i da ako ćelija nije popunjena.
Komande za mjerenje
Algoritam bi mogao izgledati ovako:
koristite robota
alg primjer 1
početak
. dolje
. u pravu
. gore
con
Ako pokušate voditi robota kroz zid, doći će do kvara. Robot će se zabiti u zid i više neće moći slijediti komande.
Napišimo algoritam za robota koji prolazi labirintom od tačke A do B:
koristite robota
Alg od A do B
početak
. u pravu
. gore ; gore ;
desno ; dolje ; dolje ; u pravu
con
. gore ; gore ; desno ;
dolje ; dolje ; u pravu
Komande za prolazak svake sekcije mogu se grupirati u jednu liniju - ovo skraćuje snimanje algoritma i čini ga razumljivijim. Da biste napisali komande u jednom redu, one moraju biti odvojene tačkom i zarezom.
Rešenje 20.1 zadatka OGE 2017 iz računarstva iz demo verzije. Ovo je zadatak drugog dijela sa detaljnim odgovorom, visokog stepena težine. Predviđeno vrijeme završetka zadatka je 45 minuta. Za ovaj zadatak možete osvojiti najviše 2 boda. Zadatak se obavlja na računaru. Provjereni elementi sadržaja:.
- sposobnost pisanja kratkog algoritma u okruženju
formalni izvršilac
— Opis elemenata sadržaja testiranih na ispitu:,
- algoritam,
svojstva algoritama
- načini pisanja algoritama,
- blok dijagrami,
— - ideja o programiranju,,
- algoritamske konstrukcije,
boolean vrijednosti
- operacije,
- izrazi,
— dijeljenje zadatka na podzadatke,
- pomoćni algoritam,
— obrađeni objekti (lanci znakova, brojeva, liste, stabla).
20.1 zadatak OGE 2017 iz računarstva
gore
dolje
lijevo
u pravu
Performer Robot može se kretati kroz lavirint nacrtan na ravni podijeljenoj na ćelije. Između susjednih (sa strane) ćelija može postojati zid kroz koji robot ne može proći.
Robot ima devet komandi. Četiri naredbe su naredbe naredbe: farbati preko Prilikom izvršavanja bilo koje od ovih naredbi, robot pomjera jednu ćeliju, redom: gore, dolje ↓, lijevo ←, desno →. Ako robot dobije komandu da se kreće kroz zid, on će se srušiti.
Robot takođe ima tim
, u kojoj je prefarbana ćelija u kojoj se trenutno nalazi Robot.
slobodan odozdo
ostavljena slobodno
slobodno na desnoj strani
Još četiri naredbe su naredbe za provjeru stanja. Ove naredbe provjeravaju da li je putanja za robota čista u svakom od četiri moguća smjera: slobodno na vrhu Ove komande se mogu koristiti zajedno sa uslovom "
Ako stanje To
redosled komandi
ako
“, koji ima sljedeći oblik:
Sve Ovdje je uvjet jedna od naredbi za provjeru uvjeta.
Redoslijed naredbi
ako je pravo slobodno onda
u pravu
farbati preko
ako
U jednom stanju, možete koristiti nekoliko naredbi za provjeru stanja koristeći logičke veze I, ili, Ne, Na primjer:
ako (desno je besplatno) i (ne ispod je besplatno) onda
u pravu
ako
Da biste ponovili niz naredbi, možete koristiti petlju " ćao“, koji ima sljedeći oblik:
nts za sada stanje
redosled komandi
kts
Na primjer, da se pomaknete udesno dok je to moguće, možete koristiti sljedeći algoritam:
nts pravo je za sada besplatno
u pravu
kts
Dovršite zadatak.
Beskrajno polje ima horizontalne i vertikalne zidove. Lijevi kraj horizontalnog zida povezan je sa donjim krajem vertikalnog zida. Dužina zida nepoznata. U vertikalnom zidu se nalazi tačno jedan prolaz i njegova širina je nepoznata. Robot se nalazi u kavezu koji se nalazi direktno iznad horizontalnog zida na njegovom desnom kraju.
Na slici je prikazan jedan od mogući načini lokacija zidova i robota (Robot je označen slovom "P").
Napišite algoritam za robota koji slika sve ćelije koje se nalaze direktno lijevo i desno od vertikalnog zida. Prolaz mora ostati neobojen. Robot mora slikati samo ćelije koje zadovoljavaju ovaj uslov. Na primjer, za gornju sliku, Robot mora obojiti sljedeće ćelije (pogledajte sliku).
Prilikom izvršavanja algoritma, Robot ne smije biti uništen; Konačna lokacija robota može biti proizvoljna.
Algoritam mora riješiti problem bilo kakvog dopuštenog rasporeda zidova i bilo koje lokacije i veličine prolaza unutar zida.
Algoritam se može izvršiti u formalnom izvršnom okruženju ili napisan u uređivaču teksta.
Sačuvajte algoritam tekstualnu datoteku. Naziv datoteke i direktorij za spremanje će vam dati organizatori ispita.
Rešenje 20.1 zadatka OGE 2017 iz računarstva
Snimaćemo komande izvođača bold font i komentari - kurziv. Početak komentara će biti označen simbolom “|” ( Nije potrebno zapisivati komentare tokom rada).
|Krećemo se lijevo dok ne dođemo do okomitog zida.
nts lijevo je za sada besplatno
lijevo
kts
|Krećemo se gore dok ne dođemo do prolaza u zidu i farbamo ćelije.
nts još nije slobodan na lijevoj strani
farbati preko
gore
kts
|Idemo do kraja zida i farbamo ćelije.
nts još nije slobodan na lijevoj strani
farbati preko
gore
kts
|Idemo oko zida.
lijevo
dolje
|Krećemo dolje dok ne dođemo do prolaza u zidu i prefarbamo ćelije.
nts još nije slobodan na desnoj strani
farbati preko
dolje
kts
|Spuštamo se do kraja zida i farbamo ćelije.
nts još nije slobodan na desnoj strani
farbati preko
dolje
kts
Moguća su i druga rješenja.
Dozvoljeno je koristiti drugačiju sintaksu za instrukcije izvođača, koja je učenicima poznatija.
Prisustvo pojedinačnih sintaksičkih grešaka je dozvoljeno, ali ne narušava namjeru autora rješenja.
2 boda za zadatak se daju ako
Algoritam radi ispravno za sve važeće ulazne podatke.
1 bod za zadatak se daje ako
Za sve važeće ulazne podatke vrijedi sljedeće:
1) izvršenje algoritma je završeno, a Robot se ne ruši;
2) ne prefarba se više od 10 dodatnih ćelija;
3) od onih koje su trebale biti ofarbane nije ostalo više od 10 ćelija.
0 bodova za zadatak se daje ako
Zadatak je pogrešno obavljen, odnosno nisu ispunjeni uslovi za davanje 1 ili 2 boda.