Cikli. Performer Robot. Pomožni algoritmi Algoritem za reševanje problema

23.11.2023 OS

Izobraževalni program izbirnega predmeta "Razvoj algoritemskega mišljenja z reševanjem problemov" (za učence 5.-6. razreda). Obdobje izvajanja: 4 mesece. Avtor programa: I.G. Shupletsov Recenzenti: metodološki svet srednje šole MBOU št. 13, 2012. Pojasnilo A. P. Ershov je opisal operativni stil razmišljanja - sposobnost načrtovanja strukture dejanj, potrebnih za dosego cilja z uporabo fiksnega nabora sredstev. Algoritemsko razmišljanje vključuje razumevanje bistva osnovnih algoritemskih struktur: sledenje, razvejanje, zankanje, klicanje, pa tudi sposobnost učinkovite uporabe teh struktur pri sestavljanju enostavnih algoritmov in gradnji kompleksnih algoritmov na osnovi preprostih. Strukturne komponente algoritemskega stila razmišljanja vključujejo: sposobnost formalizacije problema, razumevanje in sposobnost izvajanja elementarnih algoritemskih operacij, izbiro optimalnega načina za dosego cilja. Sposobnost gradnje algoritmov je z vidika predmetne dejavnosti pomembna na številnih področjih znanja in dejavnosti učencev. Izbira reševanja problemov v okolju KuMir je posledica dejstva, da vam omogočajo jasno demonstracijo algoritmov, kar razvija algoritemske sposobnosti in algoritemsko razmišljanje na podlagi vizualnih dejanj izvajalcev. Učence od 5. do 6. razreda motiviramo za uporabo izvajalcev okolja KuMir. Zanje so enostavni za uporabo in ukazni sistem teh izvajalcev je zanje jasen in enostaven za uporabo. Učenci z navdušenjem ustvarjajo preproste algoritme in jih demonstrirajo učitelju in drug drugemu. Vidnost dejanj izvajalcev omogoča enostavno spremljanje izvajanja algoritma in po potrebi prilagajanje le-tega. Predmet “Razvoj algoritemskega mišljenja z reševanjem problemov” je praktično naravnan. Študenti samostojno osvojijo okolje KuMir in tehnike reševanja problemov na podlagi predlaganih tehnologij in analiziranih primerov. Učitelj individualno pomaga ob težavah in beleži rešene probleme ter ponudi optimalne možnosti reševanja problemov. Tečaj je na voljo za študij v šolah, ki imajo potrebno izobraževalno, metodološko in tehnično opremo. Namenjen je učencem od 5. do 6. razreda, ki imajo osnovna znanja o delu z operacijskim sistemom WINDOWS. Ta tečaj se lahko nadaljuje s tečajem osnov programiranja in tečajem na daljavo o reševanju olimpijadnih problemov na spletni strani http://www.acmu.ru za zainteresirane študente 78 razredov. Tema "Algoritmizacija" se preučuje v 4. četrtini 6. razreda. Tako bodo študentje do tega časa že obvladali uporabo okolja KuMir in intuitivnih algoritemskih zasnov, kar jim bo omogočilo uspešno učenje teorije algoritmizacije in njeno enostavno uporabo v praksi. Predmet “Razvoj algoritemskega mišljenja z reševanjem problemov” je zasnovan za 17 ur, v okviru katerih bodo študenti sposobni intuitivno, pri reševanju problemov na računalniku, osvojiti osnovne algoritemske strukture: sledenje, razvejanje, zankanje, klicanje pomožnega algoritma, za učinkovito sestavljanje algoritmov. 1 Predmet je lahko prvi korak za nadaljnji študij programiranja in izbiro študijske smeri, povezane z informacijsko tehnologijo. Cilji in cilji predmeta Namen predmeta:  razširiti znanje študentov pri predmetu Informatika in IKT;  razvijati algoritemsko mišljenje učencev s sestavljanjem algoritmov za reševanje problemov. Cilji predmeta:  študente v praksi seznaniti z okoljem KuMir;  razmislite o glavnih zmožnostih najbolj priljubljenih izvajalcev "Robot" in "Risar";  se naučijo uporabljati osnovne algoritemske strukture: sledenje, razvejanje, zankanje, klicanje. Tehnologija treningov. Kontrolni razredi potekajo v obliki praktičnega dela. Na začetku ure (5 minut) učitelj učencem postavi cilj te ure in opozori na rezultate vsakega učenca, ki jih je do tega časa dosegel in katere naloge mora rešiti pri tej uri. Dijaki sestavljajo algoritme na računalniku, jih izvajajo, spremljajo vmesne rezultate in poročajo učitelju o rešitvi nalog. Učenci si lahko pomagajo pri reševanju problemov. Tiste naloge, ki niso bile rešene pri pouku, lahko rešimo kot domačo nalogo in preverimo v naslednjih urah. Učitelj preveri rešeno nalogo in njeno rešitev zapiše v dnevnik. Na koncu pouka (5 minut) se ugotovijo tisti učenci, ki imajo največ rešenih nalog, ugotovijo se težave, s katerimi se srečujejo učenci, ki težav niso rešili, ter se predlagajo in razpravljajo o načinih za njihovo premagovanje. Na začetku in koncu lekcije se pregledajo ocene vseh učencev, kar vam omogoča, da organizirate tekmovanje med učenci. Koledarsko-tematski načrt Učne ure Tema učne ure 1 2 3 4 5 Uvod v sistem KuMir. Reševanje problema. Performer Robot. Reševanje problema. Sestavljanje linearnih algoritmov. Reševanje problema. Sestavljanje linearnih algoritmov. Reševanje problema. Primeri pomožnih algoritmov. Sestavljanje pomožnih algoritmov. Reševanje problema. Sestavljanje pomožnih algoritmov. Reševanje problema. Primer cikličnega algoritma. Sestavljanje cikličnih algoritmov. Reševanje problema. 6 7 Število ur 1 1 1 1 1 1 1 2 8 9 10 11 12 13 14 15 16 17 Primer razvejanega algoritma. Sestavljanje razvejanih algoritmov. Reševanje problema. Izvajalec risar. Reševanje problema. Ukaz za pomik na točko. Sestavljanje linearnih algoritmov. Reševanje problema. Ukaz za vektorski premik. Sestavljanje linearnih algoritmov. Reševanje problema. Ukaz za vektorski premik. Sestavljanje linearnih algoritmov. Reševanje problema. Sestavljanje pomožnih algoritmov. Reševanje problema. Sestavljanje pomožnih algoritmov. Reševanje problema. Sestavljanje cikličnih algoritmov. Reševanje problema. Sestavljanje cikličnih algoritmov. Reševanje problema. Povzemanje. Študentska ocena. Reševanje problema. Skupaj 1 1 1 1 1 2 1 1 1 17 Vsebina učnega gradiva Uvod v sistem KuMir. Nalaganje sistema KuMir. Imenovanje izvršitelja Robota. Sistem ukazov izvajalca robota. Vrstni red pisanja algoritma. Postopek za ustvarjanje robotskega polja. Izvedba algoritma. Sledenje rezultatom robotovega izvajanja algoritma. Pisanje prvega algoritma. Sestavljanje linearnih algoritmov. Reševanje problema. Pomožni algoritem. Dva primera pomožnih algoritmov. Ukaz za klic pomožnega algoritma. Snemanje pomožnega algoritma. Dva primera, v katerih se uporabljajo pomožni algoritmi. Sestavljanje pomožnih algoritmov. Reševanje problema. Ciklični algoritem. Primer cikličnega algoritma. Zanka z določenim številom ponovitev, ukaz Loop N-krat. Sestavljanje cikličnih algoritmov. Reševanje problema. Algoritem razvejanja. Dva primera razvejanega algoritma. Ukaz Če. Polna in nepopolna oblika ukaza if. Pogoji v razvejanem algoritmu. Sestavljanje razvejanih algoritmov. Reševanje problema. Izvajalec risar. Sistem ukazov za risarja. Pisanje algoritma za risarja. Namen ukaza je premik na točko. Primer algoritma z ukazom za premik na točko. Postopek za izdelavo risbe in pisanje algoritma za izvajalca Draftsman. Sestavljanje linearnih algoritmov. Reševanje problema. Izvajalec risar. Primer algoritma z ukazom premik za vektor. Postopek za ustvarjanje risbe in pisanje algoritma z ukazom za premik v vektor za izvajalca Draftsman. Sestavljanje linearnih algoritmov. Reševanje problema. Primer pomožnega algoritma. Sestavljanje pomožnih algoritmov. Reševanje problema. Primer cikličnega algoritma. Sestavljanje cikličnih algoritmov. Reševanje problema. Pričakovani rezultati obvladovanja predmeta Predmet omogoča študentu, da se seznani z: Nalagalnimi in vmesnikskimi elementi programa KuMir. Z vrstnim redom izvajanja nekaterih dejanj v programu KuMir. Z imenovanjem izvršitelja Robota. Z imenovanjem izvajalca Pripravljavca. 3 Z osnovnimi algoritemskimi strukturami: sledenje, razvejanje, zankanje, klicanje. Z vrstnim redom ustvarjanja in izvajanja algoritmov. Z izračunom vrednosti vektorjev po celicah z uporabo projekcij na koordinatne osi. Med učnim procesom šolarji pridobijo veščine: Ustvarjanja in izvajanja algoritmov. Shranjevanje in nalaganje algoritmov. Uporaba različnih algoritemskih zasnov za učinkovito reševanje problemov. Konstruiranje risb na koordinatni ravnini. Pogoji za izvedbo predmeta 1. 2. 3. 4. 5. 6. 7. Računalniški razred 12 računalniki. Lokalno omrežje. Demo zaslon. Tiskalnik. Papir za tiskalnik A4. Okolje KuMir je prosto distribuirana programska oprema. Didaktična gradiva. Reference Leonov A.G. Obvladajte KuMir v 6 urah. - Moskva: Informatika, priloga k časopisu 1. september, št. 24, 2010, št. 2, 2011, Kushnirenko A.G. Osnove informatike in računalništva: Prob. učbenik za srednje učbenik ustanove A.G. Kušnirenko, G.V. Lebedev, R.A. Svoren - 2. izd. – M.: Izobraževanje, 1991. – 224 str.: ilustr. Dodatek 1 Izvajalec »Robot« Linearni algoritmi Izvajalec »Robot« se premika v karirastem polju 15 x 10 celic in barva celice. Robot lahko izvaja naslednje ukaze SKI: gor, dol, levo, desno, barva. Prenesite program KuMir za izvajalca “Robot” 1. Metoda - odprite bližnjico na namizju. 2. Metoda – Računalniški pogon C: mapa Šolska mapa KumirWin datoteka kumir.exe (aplikacija). 4 Primer 1 1. V KuMir s tipkovnice vtipkamo program Primer1. 2. V meniju Orodja pokličite ukaz Uredi zagonsko okolje robota. 3. Pokličite meni Pomoč za nastavitve, preberite dejanja, izvedena pri urejanju nastavitve, in si jih zapomnite. 4. Počistite okolje in postavite robota na sredino polja. Zaprite nastavitev brez shranjevanja. 5. Pokličite meni Izvedba in ukaz STEP (F8 je bližnjična tipka). 6. Pokličemo polje Robot, meni Robot, ukaz Prikaži okno Robot. 7. Pritisnite tipko F8 do konca programa (dokler zelena vrstica ne izgine). Morali bi dobiti naslednji rezultat. 1. naloga Ustvarite program, po katerem bo robot pobarval celice, razporejene v šahovnici s stranico dolžine 3 celic. 5 Naloga 2 Ustvarite program, po katerem bo robot pobarval celice, razporejene v obliki romba s stranico dolžine 4 celic. 3. naloga Ustvarite program, po izvedbi katerega bo robot pobarval celice, razporejene v obliki piramide visoke 4 celice in se vrnil v prvotni položaj. Naloga 4 Ustvarite program, po izvedbi katerega bo robot prebarval celice tako, da bo nastala zanimiva risba (na primer smeško). 6 Naloga 5 Robot je na začetku vodoravnega hodnika (celica A). Premaknite robota na konec hodnika (celica B). Črki A in B nista postavljeni v nastavitvi robota. Naloga 6 Robot se nahaja pred vhodom v navpični hodnik. Robot mora hoditi po hodniku in zapustiti eno celico. Robot mora barvati celice, skozi katere gre. Naloga 7 V nastavitvi Robot ustvarite labirint z enim izhodom. Robota postavite v kletko, iz katere bo zapustil labirint. Napišite program, ki bo robota popeljal iz labirinta. 8. naloga Robot se mora premakniti iz celice A v celico B in pobarvati s pikami označene celice. 7 Pomembno: vsi algoritmi, ki ste jih sestavili, so linearni, ker ukazi v njih si sledijo drug za drugim od začetka do konca algoritma. 8

Performer Robot. Pomožni algoritmi(2h)

Cilj: uvesti pojem glavnega in pomožnega algoritma; razložiti pravila za uporabo pomožnega algoritma; analizirati primere algoritmov z uporabo pomožnih. Razviti praktične spretnosti pri konstruiranju algoritmov z uporabo metode zaporednega izboljšanja.

Učni načrt

1. Uvedba novih pojmov (glavni in pomožni algoritmi, klici) in razlaga novih pojmov.

2. Analiza primerov reševanja problemov s pomočjo pomožnega algoritma.

3. Praktično delo

Pri reševanju nekaterih problemov je primerno, da jih razdelimo na manjše podnaloge, od katerih je vsako mogoče oblikovati kot neodvisen algoritem. V tem primeru se najprej prevede tako imenovani glavni algoritem, v katerem se za reševanje podnalog uporabijo klici pomožnih algoritmov, ki se dodajo kasneje. Ta rešitev se imenuje metoda zaporednega izpopolnjevanja. Omogoča skupini programerjev, da delajo na projektu, pri čemer vsak rešuje svojo podnalogo.

V procesu reševanja problema lahko vsak pomožni algoritem po potrebi razdelimo na manjše pomožne algoritme.

Pokliče se ukaz za izvedbo pomožnega algoritma izziv in je zapisan v telesu glavnega algoritma.

Isti algoritem lahko štejemo za glavnega in pomožnega glede na druge algoritme. V algoritemskem jeziku najprej napišemo glavni algoritem, po vrsti pa zapišemo pomožne.

Naloga 1:

Robot je v zgornjem levem kotu polja. Ni sten in poslikanih celic. Ustvarite algoritem s pomočjo pomožnega, ki na eno vodoravno črto nariše štiri križce. Končni položaj robota je lahko poljuben.

rešitev

Analiza na tabli:

Naloga 2. Robot je v zgornjem levem kotu polja. Ni sten in poslikanih celic. Ustvarite algoritem, ki v šahovnici pobarva kvadrat 8 x 8. Končni položaj robota je lahko poljuben.

Praktično delo na osebnem računalniku "Reševanje problema s pomočjo pomožnih algoritmov"

Problem 1 . Robot je v spodnjem levem kotu polja. Ni sten in poslikanih celic. Ustvarite algoritem, ki pobarva 6 navpičnih črt enake dolžine v 6 celic. Končni položaj robota je lahko poljuben.

Problem 2 . S pomočjo pomožnih sestavite algoritem za barvanje celic, ki tvorijo število 1212.

Domača naloga : Izmislite si algoritem, ki nariše naslednjo sliko: Za rešitev težave uporabite dva pomožna algoritma.

In danes bomo govorili o ciklih. Ugotovimo, kaj je cikel in kako našega robota naučiti izvajati ciklične algoritme.

Torej, kaj je cikel? Predstavljajte si, da smo pri pouku športne vzgoje in se soočimo z nalogo naredite 7 počepov. To nalogo lahko zapišemo kot linearni algoritem in potem bo videti nekako takole:

naredi počep

naredi počep

naredi počep

naredi počep

naredi počep

naredi počep

naredi počep

To pomeni, da smo ukaz "naredi počep" ponovili 7-krat. Ali je smiselno napisati 7 enakih ukazov? Morda bi bilo lažje dati ukaz naredite 7 počepov? Seveda je bolj preprosto in pravilno. To je cikel. Sami se lahko spomnite primerov ciklov iz življenja - teh je kar nekaj.

torej linearni algoritem, kjer se isti ukazi ponavljajo lahko uredimo kot ciklični algoritem- kot to:

ponovite 7-krat

naredi počep

konec cikla

Tako smo oblikovali cikel v jeziku, ki smo ga izumili. Robot performer ima tudi možnost snemanja ciklov. Še več, cikli so različni. Možnost, ki smo si jo pravkar ogledali, se imenuje zanka s števcem oz zanka s parametrom.

Vrste ciklov.

Zanka s števcem.

Zanka s števcem uporablja se, ko je vnaprej znano, koliko ponovitev je treba narediti. V zgornjem primeru s počepi je točno tako.

Če želite napisati zanko s števcem za izvajalca, morate poznati njeno sintakso. In tak je:

nc<število ponovitev> krat

<команда 1>

<команда 2>

<команда n>

Tu moramo določiti število ponovitev (number) in ukaze, ki se bodo ponavljali. Pokličejo se ukazi, ki se ponavljajo v zanki telo zanke.

Poglejmo si to s primerom.

Sprva je bil robot v zgornji levi celici.

Najprej rešimo nalogo linearno. V tem primeru bomo prebarvali trenutno celico in premaknili 1 celico v desno in program bo izgledal takole:
uporabite robota
alg
začetek

prebarvati

prav

prebarvati

prav

prebarvati

prav

prebarvati

prav

prebarvati

prav

prebarvati

prav

prebarvati

prav

Kot lahko vidite, se ukaza za barvanje in desno ponovita 7-krat. Zdaj pa na novo napišimo program z uporabo zanke. Mimogrede, če želite vstaviti cikel v svoj program, lahko greste v meni Vstavi izberite predmet ck-ck-ck ali pritisnite eno od kombinacij tipk Esc, P(ruska črka R) oz Esc, H(latinska črka H). Poleg tega tipke je treba pritisniti zaporedno- najprej Esc, spustite in šele nato P ali H.

Torej, tukaj je naš program zanke bo videti takole:

uporabite robota

nts 7-krat

prebarvati

prav

Če ga poženemo, bomo videli, da bo rezultat enak - 7 zapolnjenih celic. Je pa program postal krajši in z algoritemskega vidika veliko bolj inteligenten!

Za ogrevanje in utrjevanje predlagam, da sami napišete program za robota, ki bo narisal kvadrat s stranico 7 celic. Seveda z uporabo zanke. Čakam na rešitev v komentarjih.

Pogojna zanka.

Pri reševanju naloge 19 Državne akademske informatike iz računalništva z robotom uporaba zanke s števcem ne bo delovala. Ker je polje tam praviloma neskončno in stene nimajo določene dolžine. Zato ne bomo mogli določiti števila ponovitev zanke s števcem. Ampak ni pomembno - pomagalo nam bo zanka s pogojem.

Vrnimo se k športni vzgoji in spremenimo problem. Navsezadnje nekdo morda ne zmore narediti 7 počepov, drugi pa 27. Ali je to mogoče upoštevati pri ustvarjanju cikla? Vsekakor. Samo zdaj ne bomo uporabili števca (število ponovitev), ampak pogoj. Na primer, preden se naveličate, naredite počepe. V tem primeru oseba ne bo naredila točno določenega števila počepov, ampak bo počepala, dokler se ne utrudi. In naš cikel v abstraktnem jeziku bo imel naslednjo obliko:

adijo ne utrujen

naredi počep

konec cikla

Besede v našem primeru niso utrujene - to je pogoj. Ko je res, se zanka izvede. Če je false (utrujen), telo zanke ne bo izvedeno. Robot izvajalec ima več pogojev

brezplačno na vrhu

prosto od spodaj

ostal svoboden

prosto na desni

stena zgoraj

stena spodaj

levo steno

stena na desni

Toda v pogojih naloge 19 GIA so navedene le prve 4. Zato jih bomo uporabili samo.

Zdaj pa rešimo naslednjo nalogo za robota - narišite navpično črto od leve proti desni meji polja s pomočjo zanke s pogojem. Na začetku se robot nahaja v zgornjem levem kotu.

Najprej oblikujmo verbalni algoritem – to pomeni, da z besedami opišemo, kaj mora robot narediti. Ta algoritem bo zvenel nekako takole:

« Medtem ko je na desni še prosti prostor, naredite korak v desno in pobarvajte celico »

Posledično bo robot tekel skozi vse celice na desni in jih barval, dokler na desni ni stena.

Izvorna koda našega programa za robota bo približno takšna:

uporabite robota

nts pravica je za zdaj brezplačna

prav

prebarvati

Kot rezultat izvajanja tega programa bomo videli naslednjo sliko:

Metodični priročnik za učitelje računalništva. Evgrafova Olga Vladimirovna, gimnazija št. 8 Kolomna, 2013 V procesu študija predmeta "Informatika in IKT" se študenti ne učijo le informacijske kulture (kulture kompetentnega komuniciranja z računalnikom, priprave dokumentov, elektronske komunikacije), ampak obvladajo tudi osnove programiranja. Eden najuspešnejših domačih razvojev na tem področju je programski sistem Kumir. V njej lahko študentje pridobijo praktične veščine pri ustvarjanju in odpravljanju napak v algoritmu, pri delu z izvajalcema Robot in Draftsman. Prednosti tega sistema so možnost pisanja ukazov v ruskem jeziku v šolskem algoritmičnem jeziku in jasnost nastalega rezultata izvajanja algoritma. Sistem KuMir je bil razvit na podlagi potreb ruskega izobraževalnega sistema. Njegove značilnosti:      prosto distribuiran; večplatformski; ničelne zahteve po virih; podpira Ruska akademija znanosti; Med razvijalci so avtorji številnih učbenikov in učnih pripomočkov s področja računalništva;  brezplačno programsko lupino Idol lahko najdete na spletni strani http://www.niisi.ru/kumir/. Žal se avtorji novih učbenikov računalništva tem izvajalcem posvečajo premalo ali jih celo ignorirajo. Hkrati so razvijalci GIA in -1-

str. 2

Enotni državni izpit vključuje naloge z uporabo podatkov o izvajalcih v nalogah izpitnih nalog. Tema se preučuje v 9. razredu v oddelku "Algoritmizacija in programiranje". Za preučevanje teme je namenjenih 9 ur. Dijaki naj bi vedeli: kaj je izvajalec; SKI Robot, okolje izvajalca Robota; kaj je algoritem; katere so glavne lastnosti algoritma; načini zapisovanja algoritmov: diagrami poteka, izobraževalni algoritemski jezik; osnovne algoritemske strukture: sledenje, razvejanje, zanka; namen pomožnih algoritmov. Študenti morajo biti sposobni: razumeti opise algoritmov v izobraževalnem algoritemskem jeziku; izvesti sledenje algoritmu za znanega izvajalca; sestaviti linearne, razvejane in ciklične krmilne algoritme za izvajalca robota; poudarite podnaloge; definirati in uporabljati pomožne algoritme. Tematski načrt pouka: Št. 1. 2. 3. 4. 5. Število ur Performer Robot. Sistem ukazov izvajalca. Sestava1 0,5 linearni algoritmi. Ciklični algoritmi. 3 1 Praktično delo št. 1. Prevajanje in odpravljanje napak cikličnih algoritmov. Razvejanje in zaporedno izpopolnjevanje algoritma. 2 1 Praktično delo št. 2. Prevajanje in razhroščevanje cikličnih in razvejanih algoritmov. Pomožni algoritmi in podprogrami. 2 0,5 Ave. suženj. št. 3. "Uporaba pomožnih algoritmov." Test. "Ustvarjanje algoritma v okolju izvajalca" Tema lekcije Praksa 0,5 2 1 1,5 1 Gradiva za lekcije na temo "Izobraževalni robot izvajalec": -2-

str. 3

Lekcija 1. Performer Robot. Sistem ukazov izvajalca. Pri izvajanju programa se robot premika v pravokotnem karirastem polju, med celicami katerega se lahko nahajajo stene. Polje prikličete na zaslon z gumbom "Robot Window", ki se nahaja v orodni vrstici. Polje programske kode robota. Robot lahko izvaja ukaze-ukaze in ukaze-vprašanja. Ukazi: desno, levo, gor, dol, barva. Če je na poti zid, ukaza ni mogoče izvesti. Za neposredno upravljanje robota se uporablja daljinski upravljalnik. Človek s pritiskom na gumbe na daljinskem upravljalniku daje ustrezne ukaze, robot pa jih izvaja. Za krmiljenje programa ni dovolj vedeti, katere ukaze in v kakšnem zaporedju je treba izvesti. Te ukaze je treba tudi zapisati v računalniku razumljivi obliki, tj. oblikovan kot algoritem. V najpreprostejšem primeru je algoritem za robota zapisan takole: Ime algoritma je zaporedje znakov ali besed, ločenih s presledki. Prvi znak imena se ne sme začeti s številko. Pravilna imena: g, vsota, vzdevek obod, 12. april, dvanajsti april, število_11_kl. "Pravilno" ime bo označeno z modro. use Robot alg algorithm_name start zaporedje ukazov con Za boljše razumevanje algoritma v telesu programa lahko uporabite komentarje. Komentarji se začnejo z |. Če komentarji obsegajo več vrstic, mora imeti vsaka vrstica na začetku znak |. Komentarji ne vplivajo na napredek algoritma. Primer 1. Program "Knight's poteza" (premaknite robota iz točke A v točko B). Začetno stanje: Program: Rezultat: Pravila algoritemskega jezika dovoljujejo zapis več ukazov v eno vrstico, ločenih s podpičji. -3-

str. 4

Primer 2. Robota morate premakniti od točke A do točke B. Pot, ki jo mora prehoditi robot, lahko razdelimo na pet enakih odsekov. Ukaze za prenos vsakega odseka je priročno združiti v eno vrstico - to skrajša snemanje algoritma in ga naredi bolj razumljivega. Sprememba kulise Robot. Da bi prisilili robota, da deluje v novem okolju, ga je treba naložiti z naslednjimi ukazi glavnega menija: Izberite element “Robot” “Spremeni začetno okolje” Odprite želeno mapo in izberite datoteko. Ustvarjanje novega okolja. Če želite ustvariti novo okolje za robota, morate izvesti ukaze glavnega menija: Izberite element »Orodja« »Uredi začetno okolje«. V oknu »Nastavitve« izberite element »Nastavitve« »Nova nastavitev« Nastavite število vrstic in stolpcev. Kliknite miško, da namestite stene in premaknite robota v želeno celico. Shranite nastavitev z ukazi: “Nastavitev” “Shrani kot” Določite ime datoteke in mapo za umestitev. Kliknite gumb "Shrani". Postavite/odstranite zid – kliknite na rob med celicami. Pobarvaj / naredi celico čisto - klikni na celico. Dodajte/odstranite točko – kliknite na celico, medtem ko držite tipko Ctrl. Nastavite sevanje, oznake - desni klik. Premaknite robota - povlecite z miško. "Izvedba" Izvedba programa. “Teči neprekinjeno” Samostojno delo na računalniku: 1. Naložite novo okolje, premaknite robota na točko “B”, pobarvajte točke, označene s simbolom “pika”: mapa “Delavnica za robota” “1” naloga “ B« (material s spletnega mesta K. Polyakova http://kpolyakov.narod.ru), sestavite program, odprite okno Robot in zaženite program za izvedbo. Program shranite v svojo mapo z imenom “1_B”. 2. Ustvarite novo situacijo, jo shranite v svojo mapo z imenom “Setting_1”. Sestavite program za novo okolje in ga shranite v svojo mapo z imenom “new_environment_1”. 3. **Reši ostale naloge iz mape št. 1 delavnice. -4- B

str. 5

Lekcija 2. Ciklični algoritmi. Obkrožite N - krat. Pregledna naloga: Petja je ustvarila algoritem za robota »Sprehodi«. Kolya je v njem izbrisal eno ekipo. Ugotovite, katero ekipo je Kolya izbrisal, če je znano, da se mora robot vrniti v prvotno stanje. Odgovor: desno uporabite Robot alg Walk start. gor; na desno. ? . navzdol; levo; levi konec N-krat · serija ukazov kc Pri sestavljanju algoritmov pogosto pride do primerov, ko je treba določeno zaporedje ukazov izvesti večkrat zaporedoma. Na primer primer št. 2 iz prejšnje lekcije. Za poenostavitev pisanja algoritma v takšnih primerih lahko uporabite ukaz “Zanka N-krat”. N je celoštevilski izraz, ki določa število ponovitev. Pri izvajanju algoritma se zaporedje ukazov ciklično ponovi določeno število krat. To število je lahko nič ali celo negativno. Ti primeri se ne štejejo za napačne; telo zanke preprosto ne bo izvedeno niti enkrat in računalnik bo takoj nadaljeval z izvajanjem ukazov, zapisanih po zanki. Primer 1. Robota morate premakniti od točke A do točke B. A B Primer 2. Pobarvajte vrstico s 16 celicami. Primer 3. Pobarvajte pravokotnik, ki meri 5(vrstic) x 6(stolpcev). uporabite Robot alg Pravokotnik začetek nc 5-krat cc konec Cikel se lahko nahaja znotraj drugega cikla. Potem se imenuje ugnezdeni. -5-

str. 6

Samostojno delo na računalniku: Primer 4. Predpostavimo, da morate robota premakniti iz začetnega položaja na točko, označeno z zvezdico, in ob tem pobarvati celice labirinta. Ustvarite okolje in program. Datoteke shranite v svojo mapo. Primer 5. Premaknite robota iz začetnega položaja na osnovo in pobarvajte celice, označene s piko. Ustvarite okolje in program. Datoteke shranite v svojo mapo. Primer 6. Robota je potrebno voditi skozi labirint od začetnega položaja do točke A. Primer 7. Robota je potrebno voditi po hodniku od začetnega položaja do točke A, pri tem pa gledati v vsak stranski hodnik. Primer 8. Napišite program za barvanje celic polja z *. Začetni položaj robota je označen z ikono ◊. Primer 9*. Na izvajalčevem polju so zidovi. Treba je najti začetni, optimalen položaj izvajalca in napisati program, katerega rezultat bodo zapolnjene celice (kot je prikazano na sliki). **Ustvarite programe z uporabo mape “Delavnica za robota”_ št. 2. -6-

str. 7

Lekcija 3. Cycle Bye. Naučiti se moramo sestavljati univerzalne algoritme, ki ne bodo odvisni od razdalje med robotom in steno ali dolžine sten. Za to bomo uporabili nov operater zanke. nts, ​​medtem ko je pogoj serija ukazov kts Pri izvajanju cikla računalnik ponovi naslednja dejanja:  preveri pogoj;  če je pogoj izpolnjen, se izvedejo ukazi telesa zanke in ponovno preveri pogoj itd.  če pogoj ni izpolnjen, se zaključi izvedba na levi steni na levi strani cikla in izvedejo se ukazi na desni steni na desni, ki so prosto napisani za cc. od spodaj stena od spodaj je prosta  ciklični pogoji (vprašalni ukazi): od zgoraj je stena od zgoraj prosta celica je pobarvana čez celica je čista Opombe.  Če pogoj ni izpolnjen od samega začetka, potem telo zanke ne bo izvedeno niti enkrat!  Zanka se morda ne bo dokončala, če je pogoj ves čas izpolnjen. Ta situacija običajno nastane kot posledica napak v NC med prostim prevajanjem algoritmov. prav; levo Primer neskončnega algoritma (desno ni stene): CC Pogoji so lahko enostavni ali sestavljeni. Preprost pogoj je običajno nekakšen ček. Primer bi bil poljuben robotov ukaz za vprašanje. Sestavljeni pogoj je sestavljen iz več preprostih pogojev z uporabo funkcijskih besed IN, ALI, NE. Če je med enostavnima pogojema IN, je za izpolnitev sestavljenega pogoja potrebno, da sta oba preprosta resnična. Če je med enostavnimi pogoji ALI, potem je za izpolnjen sestavljeni pogoj dovolj, da je vsaj en preprost pogoj resničen. Primer 2. Primer robota 1. Ped mora prebarvati in zamenjati Roklete, ki jih je navedel bot, na bazo. na sliki. Dolžina stene in razdalja do stene nista znani. uporabite Robot alg To Base začetek. nts vrh je za zdaj brezplačen. . gor. kts. za zdaj je zid na vrhu. . na desno. kts. up con -7-

str. 8

▪ Samostojno delo na računalniku: Nekje v robotskem polju je stena v obliki kota, katere mere niso znane. Robot iz poljubne celice levo od stene, vendar vsekakor nasproti nje, mora doseči steno in pobarvati vse celice ob steni za njo, kot je prikazano na sliki. ▪ Robota je potrebno premakniti iz začetnega položaja v točko A, pri tem pa barvati označene celice polja. Dimenzije sten in razdalja med njimi so lahko poljubne. ▪ Ustvarite programe z uporabo mape “Workshop for the Robot”  Folder_4_Tasks_A_C_D  Folder_5_Tasks_A_B_C_D Lekcija 4. Praktično delo št. 1. Ciklični algoritmi za robota. 1. možnost Naloga 1. Prebarvajte celice, ki se nahajajo levo od stene ali na vrhu stene. Razdalja od robota do stene ni znana. Dolžina sten ni znana. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. P Naloga 2. Izvajalec Robot se nahaja nekje znotraj omejenega kvadrata. Dolžina stranice kvadrata ni znana. Napišite algoritem za robota, ki pobarva vse celice, ki se nahajajo na diagonali kvadrata od zgornjega levega do spodnjega desnega kota. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. Naloga 3. Prenesite izvajalca iz celice A v celico B in pobarvajte označene celice. Dolžina sten in razdalja med njimi nista znani. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. -8-

str. 9

Naloga 4. Robota je treba premakniti iz začetnega položaja (◊) v točko A, pri tem pa barvati označene celice polja. Dimenzije sten in razdalja med njimi so lahko poljubne. Naloga 5. Na neskončnem polju je lestev. Število korakov je lahko poljubno. Spodnja vodoravna stena se nadaljuje v nedogled v desno, zgornja vodoravna stena pa v nedogled v levo. Robot se nahaja nekje nad spodnjo vodoravno steno. Prebarvajte celice vzdolž navpičnega dela stopnic (glejte sliko). Končni položaj robota je poljuben. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. Vsak korak ima velikost 2 celic vodoravno in 2 celici navpično. 2. možnost Naloga 1. Napišite algoritem za robota, ki pobarva vse celice, ki se nahajajo vzdolž leve in nad spodnjimi stranicami pravokotnika ter mejijo na steno. Razdalja od robota do sten in dolžina sten nista znani. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. Naloga 2. Izvajalec Robot se nahaja nekje znotraj omejenega kvadrata. Dolžina stranice kvadrata ni znana. Napišite algoritem za robota, ki pobarva vse celice, ki se nahajajo na diagonali kvadrata od zgornjega desnega do spodnjega levega kota. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. Naloga 3. Prenesite izvajalca iz celice A v celico B in pobarvajte označene celice. Dolžina sten in razdalja med njimi nista znani. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. -9-

str. 10

Naloga 4. Robota je treba premakniti iz začetnega položaja (◊) v točko A, pri tem pa barvati označene celice polja. Dimenzije sten in razdalja med njimi so lahko poljubne. Naloga 5. Na neskončnem polju je lestev. Število korakov je lahko poljubno. Spodnja vodoravna stena se v nedogled nadaljuje v levo, zgornja vodoravna stena pa v nedogled v desno. Robot se nahaja nekje nad spodnjo vodoravno steno. Prebarvajte celice vzdolž navpičnega dela stopnic (glejte sliko). Končni položaj robota je poljuben. Ustvarite nastavitev in napišite program. Datoteke shranite v svojo mapo. Vsak korak ima velikost 2 celic vodoravno in 2 celici navpično. Lekcija 5. Algoritmi razvejanja. Ukaz “če _ potem _ drugače _ vse” Splošni pogled na ukaz: če je pogoj potem dejanja 1 sicer dejanja 2 vse Struktura ukaza: po preverjanju pogoja se izvedejo dejanja 1, če je pogoj resničen, sicer se izvedejo dejanja 2 Po tem se za besedo vse izvedejo zapisani ukazi. Veja sicer lahko manjka (nepopolna razvejanost). V tem primeru ima ukaz obliko: če je pogoj, potem vsa dejanja.Če pogoj ni izpolnjen, se takoj izvedejo vsi ukazi, ki so zapisani za servisno besedo. Primer 1. Ustvarite program, ki vodi robota skozi koridor poljubne dolžine. Na poti mora robot pobarvati vse celice, ki nimajo spodnje stene. Število lukenj ni znano. - 10 -

str. enajst

Primer 2. Premaknite robota na točko B in pobarvajte celice, označene s piko. Dolžina zidu in število "slepih ulic" nista znana. uporabi Robot alg To Base start nc, medtem ko je desno prosto, desno, če je vrh prost, potem navzgor pobarvaj navzdol vse kts navzdol con Primer** Izračunaj, koliko osenčenih celic je v hodniku (za to moraš razčleniti dodatne konstrukcije: celo število sch | opis spremenljivke celoštevilskega tipa sch:= сч+1 | povečanje spremenljivke za 1 izhod sč | prikaz vrednosti spremenljivke na ekranu Samostojno delo na računalniku: Ustvari situacijo in reši problem. Naloga 1. Ustvarite algoritem za prehod robota skozi okolje: Naloga 2. Ustvarite program, v katerem robot premaga poljubno število ovir in doseže steno. Ovire so lahko postavljene kamor koli. - 11 -

str. 12

Naloga 3. Pobarvaj celice, označene s pikami. Naloga 4. uporabite Robot Alg On Base začnite slikati čez nc, medtem ko je na desni strani prost v desno, če je prost na vrhu, potem navzgor; prebarvati; navzdol sicer prebarvaj vse kts navzdol con Naloga 5. Prebarvaj celice, ki se nahajajo ob stenah. Ustvarite algoritem, ki pobarva vse celice med dvema stenama. Katera stena je levo, ni znano. uporabite Robot alg between_walls start nts dokler (ne prosto od zgoraj) ali (ne prosto od spodaj) v desno if (ne prosto od zgoraj) in (ne prosto od spodaj) nato prebarvajte vse kc con uporabite Robot alg uch5 začnite desno nts, dokler ni prosto barva od spodaj; desno kts prebarvajte; navzdol nc, dokler levo ni prosto za barvanje; v levo kts ts, dokler leva ni prosta za prebarvanje; navzdol kts prebarvati; levo; prebarvati; gor; nts, ​​dokler vrh ni prosto pobarvan; navzgor kts ts, dokler vrh ni prosto prebarvan; levo kts con Naloga 6**. Robot je na začetku hodnika. Hodnik ima slepe ulice na vrhu in dnu neznane dolžine, vendar njuna lokacija nikoli ni nasproti drug drugemu. Tudi dolžina hodnika ni znana. Napišite algoritem za barvanje vseh slepih ulic in izhodov s hodnika. - 12 -

str. 13

uporabite Robot alg slepe ulice začetek. nts za zdaj (zid zgoraj) ali (stena spodaj). . na desno. . če (prosto zgoraj) in (stena spodaj). . . to. . . . nts vrh je za zdaj brezplačen. . . . . gor; prebarvati. . . . kts. . . . nts je še vedno prosto od spodaj. . . . . navzdol. . . . kts. . Vse. . če (prosto od spodaj) in (stena od zgoraj). . . to. . . . nts je še vedno prosto od spodaj. . . . . navzdol; prebarvati. . . . kts. . . . nts vrh je za zdaj brezplačen. . . . . gor. . . . kts. . Vse; . kts; con Ukazi, označeni z rdečo, so potrebni za ustavitev pri izhodu iz hodnika. Lekcija 6. Praktično delo št. 2. Ciklični in razvejani algoritmi za robota. Reševanje težav z uporabo CMM GIA. Komentiraj. Pri sestavljanju algoritmov je treba problem rešiti v splošni obliki, tj. vrsta figure je določena, vendar se lahko razlikujejo dolžine stranic, število korakov in drugi parametri. Program bi moral delovati za vsako postavo podobnega videza! Naloga 1. Ustvarite situacijo in napišite algoritem, ki pobarva vse celice, ki se nahajajo desno od navpičnih delov stene. uporabite Robot alg task 1 start down; na desno. nts vrh je za zdaj brezplačen. . pobarvati. kts. nts še niso prosti od zgoraj. . na desno. kts. gor. nts še ni prost na levi strani. . prebarvati; gor. kts con - 13 -

str. 14

uporabite Robot alg naloga 2 začetek. nts pravica je za zdaj brezplačna. . na desno. kts. nts še niso prosti na desni. . gor. kts. na desno. nts še niso prosti na desni. . pobarvati; na desno. kts con Višina vsake stopnice je en kvadrat, širina je 2 kvadrata. Problem 2. Napišite algoritem, ki pobarva vse celice nad koraki. Naloga 3. Pobarvajte vse celice, ki se nahajajo nad stopnicami stopnic, ki se spuščajo od leve proti desni. uporabite Robot alg naloga 3 začetek. nts je še vedno prosto od spodaj. . navzdol; levo; levo. kts. nts še ni prost na levi strani. . prebarvati; na desno. . prebarvati; na desno. . navzdol. kts con Naloga 4. Pobarvaj celice labirinta. uporabite Robot alg Labyrinth začetek. na desno. zaenkrat je na desni stena. . prebarvati; gor. . prebarvati; gor. . prebarvati; na desno. . prebarvati; navzdol. . prebarvati; navzdol. . prebarvati; na desno. kts con Naloga 5** Izvajalec je v poljubni celici, vendar vedno nasproti stene (slika zgoraj). Posledično morate prebarvati celice, kot je prikazano na spodnji sliki. - 14 -

str. 15

uporabite Robot alg Izhod start. nts, ​​medtem ko je na desni strani prosto; . kts. nts medtem ko je na desni stena spuščena; . kts. prav; gor. nts za zdaj (stena na levi in ​​prosto zgoraj) ali (stena zgoraj in prosto na desni) ali (stena na desni in prosto spodaj) ali (stena spodaj in prosto na levi). . če (stena na levi) in (prosto na vrhu). . . to. prebarvati; gor. . Vse. . če (stena je zgoraj) in (prosto na desni). . . to. . prebarvati; na desno. . Vse. . če je na desni stena in je spodaj prosti prostor. . . to. . prebarvati; navzdol; . . Vse. . če je spodaj stena in je na levi prosti prostor. . . to. . . prebarvati; levo; . . Vse; . kts; con Lekcija 7. Pomožni algoritmi Pri reševanju nekaterih problemov jih je priročno razdeliti na manjše podnaloge, od katerih je vsako mogoče oblikovati kot neodvisen algoritem. V tem primeru se najprej prevede tako imenovani glavni algoritem, v katerem se za reševanje podnalog uporabijo klici pomožnih algoritmov, ki se dodajo kasneje. Ta metoda rešitve se imenuje metoda zaporednega izboljšanja. Omogoča skupini programerjev, da delajo na projektu, pri čemer vsak rešuje svojo podnalogo. Ukaz za izvedbo pomožnega algoritma se imenuje klic in je zapisan v telesu glavnega algoritma. V algoritemskem jeziku najprej napišemo glavni algoritem, po vrsti pa zapišemo pomožne. Primer 1. Razmislite o situaciji iz lekcije št. 1. Robota je treba premakniti v celico, označeno s piko. uporabite Robot alg Corridor start bypass; obvoznica; obvoznica; obvoznica; obvod con alg zagon obvoda; gor; desno spodaj; navzdol; desni con - 15 - Nadzor robotskega izvajalca v sistemu KUMIR

Robot obstaja v določenem okolju (pravokotno karirasto polje). Med nekaterimi celicami polja so lahko stene. Nekatere celice so lahko prebarvane (slika 3.11).

Robot zaseda točno eno celico polja.

Z ukazi gor, dol, levo in desno se robot premakne v sosednjo celico v označeni smeri. Če je na poti zid, pride do napake - prikaže se sporočilo, da naslednjega ukaza ni mogoče izvesti.

Na ukaz za slikanje robot pobarva celico, v kateri stoji. Če je bila celica že prebarvana, jo bomo ponovno prebarvali, vendar ne bo vidnih sprememb.

Robot lahko izvaja samo pravilno zapisane ukaze. Če namesto ukaza navzdol zapišete navzdol, robot tega vnosa ne bo razumel in bo takoj javil napako.

O
napake: 1 skladenjska; 2. logično

Opisi situacij so shranjeni v tekstovnih datotekah v posebnem formatu (.fil format).

Trenutno- okolje, v katerem se robot trenutno nahaja (vključno s podatki o položaju robota).

Začetek- okolje, v katerega je robot prisiljen biti postavljen na začetku izvajanja programa z uporabo robota.

Postopek delovanja:


  1. Set začetno okolje glede na pogoje problema:
Meni Orodja → Spremenite začetno okolje robota (narišite okolje glede na pogoje naloge, poimenujte ga, shranite v osebno mapo)

2. Določite izvajalca:

Meni Vstavi →Uporabi robota

3. Napiši algoritem za rešitev problema.

4. Izvedite algoritem (Meni Izvedba → Zaženi neprekinjeno /F9)

Sistem ukazov izvajalca robota v sistemu KUMIR


Ekipa

Akcija

gor

Robot se premakne za 1 polje navzgor

navzdol

Robot se premakne za 1 polje navzdol

levo

Robot se premakne za 1 polje v levo

prav

Robot se premakne za 1 polje v desno

prebarvati

Robot pobarva celico, v kateri je

prosto na desni

Robot preveri izvajanje ustreznih preprosto pogoji

ostal svoboden



brezplačno na vrhu



prosto od spodaj



celica je prebarvana



kletka je čista



Ciklični algoritmi

Cikel– organizacija ponavljanja dejanj, medtem ko je določen pogoj resničen .

Telo zanke je nabor ponovljivih dejanj.

Pogoj - logični izraz (preprost ali zapleten (sestavljen))
Vrste ciklov:

1.Zanka "Ponovi n-krat" 2. Zanka "Dokler"
nts n-krat nts za zdaj
. . Telo zanke. . Telo zanke
kts kts

primer: nts za zdaj prosto na desni


Splošni pogled na cikel "Ponovi n-krat":

PONOVI n-KRAT

KONEC
kts

Splošni pogled na cikel "medtem":

NAREDI TO ADIJO

KONEC
Sestavljeni pogoji sestavljen iz enega ali več preprostih pogojev in funkcijskih besed IN, ALI, NE.


Sestavljeno stanje A IN B(kjer sta A, B preprosta pogoja), je izpolnjen, ko je izpolnjen vsak od dveh preprostih pogojev, vključenih v to.

Naj A - brezplačno na vrhu, IN - prosto na desni, potem sestavljeni pogoj A IN B- prosto zgoraj in prosto desno.


Sestavljeno stanje A ALI B izpolnjeno, ko je izpolnjen vsaj eden od dveh enostavnih pogojev, vključenih v to: zgoraj brezplačno ALI desno brezplačno
Sestavljeno stanje NE A- izpolnjen, ko pogoj A ni izpolnjen.

primer: Naj bo A obarvana celica (preprost pogoj).

p Preverjanje sestavljenega pogoja NE A:

a) A - izpolnjeno, NE A (NI osenčeno) - ni izpolnjeno.

b) A - ni dokončano, NE A (NI osenčeno) - dokončano.


Poveljstvo veje

Razvejanje - oblika organizacije dejanj, pri kateri se glede na izpolnjevanje ali neizpolnjevanje nekega pogoja izvaja eno ali drugo zaporedje dejanj.

Splošni pogled na ukaz IF:

ČE TO DRUGAČE

KONEC

V jeziku ICON:

Popolna razvejanost: Nepopolna razvejanost:
če to če to

drugače

vse vse

Pomožni algoritem- algoritem, ki rešuje neko podnalogo glavnega problema.

V sistemu KUMIR so pomožni algoritmi zapisani na koncu glavnega programa (za servisno besedo con), so klicane za izvedbo v glavnem programu po imenu.

IN ankete in naloge

1. Podajte vse algoritme iz treh ukazov, ki bodo premaknili robota iz prvotnega položaja v celico B.

Ali obstaja algoritem za to nalogo, pri katerem robot naredi:

a) dva koraka; b) štiri korake; c) pet korakov; d) sedem korakov?


  1. Petya je sestavil algoritem, ki prenese robota iz celice A v celico B tako, da pobarva nekaj celic. Kaj naj Kolja naredi s tem algoritmom, da dobi algoritem, ki prenese robota iz B v A in pobarva iste celice?


7. Znana sta dva algoritma pomožnega robota

Narišite, kaj se bo zgodilo, ko bo robot izvedel naslednje osnovne algoritme:


A)

nts 5-krat


vzorec_1

prav; prav;


b)

nts 7-krat


vzorec_2

prav; prav


V)
prav; prav; prav

gor; gor

prav; prav; prav

navzdol; navzdol


G)
prav; prav
prav; prav

8. Ustvarite algoritme, pod nadzorom katerih bo robot prebarval označene celice:



9. Pozna se, da je nekje desno od Robota stena. Ustvarite algoritem, pod nadzorom katerega bo robot pobarval vrsto celic do stene in se vrnil v prvotni položaj.

10. Znano je, da je nekje desno od robota zapolnjena celica.

Z prepustite algoritmu, pod nadzorom katerega bo robot pobarval število celic do pobarvane celice in se vrnil v prvotni položaj.

11. Znano je, da se Robot nahaja poleg levega vhoda v vodoravni hodnik.

12. Znano je, da je robot nekje v vodoravnem hodniku. Nobena celica hodnika ni prebarvana.

Ustvarite algoritem, pod nadzorom katerega bo robot pobarval vse celice tega koridorja in se vrnil v prvotni položaj.


13. V vrsti desetih celic desno od robota so nekatere celice zasenčene.

Z pusti algoritem, ki barva celice:

a) pod vsako osenčeno celico;

b) nad in pod vsako osenčeno celico.


14. Kaj lahko rečemo o pravilnosti naslednjega fragmenta algoritma?

nts za zdaj celica je prebarvana

ČE prosto na desni TO

prav; prebarvati

Za
ts

15. Napišite program, s katerim lahko robot pride do celice B v vseh treh labirintih.


16. Napišite program, po katerem bo robot lahko hodil po hodniku od spodnjega levega kota polja do zgornjega desnega. Hodnik je širok eno celico in se razteza v smeri od leve spodaj proti desni navzgor. Primer možnega koridorja je prikazan na sliki.

Z

Dosežki GIA


  1. Koridor1. Robot se nahaja nekje v navpičnem hodniku. Nobena celica hodnika ni prebarvana. Ustvarite algoritem, pod nadzorom katerega bo robot pobarval vse celice tega koridorja in se vrnil v prvotni položaj.

  1. TO
    Nujno

    dano
    koridor2. Robot se nahaja v zgornji celici ozkega navpičnega hodnika. Širina koridorja je ena celica, dolžina hodnika je lahko poljubna.

Možna možnost začetne lokacije robota je prikazana na sliki (robot je označen s črko "P")

Napišite algoritem za robota, ki pobarva vse celice znotraj hodnika in robota vrne v prvotni položaj. Na primer, za zgornjo sliko mora robot prebarvati naslednje celice (glej sliko):


  1. V neskončnem polju je dolga vodoravna stena. Dolžina zidu ni znana. Robot je v eni od celic neposredno nad steno. Prav tako ni znan začetni položaj robota. Eden od možnih položajev:
n


Nujno

dano
Napišite algoritem za robota, ki pobarva vse celice, ki se nahajajo nad steno in ob njej, ne glede na velikost stene in začetni položaj robota. Na primer, za zgornjo sliko mora robot prebarvati naslednje celice:

Končni položaj robota je lahko poljuben. Pri izvajanju algoritma se robot ne sme uničiti.



  1. Neskončno polje ima dolgo navpično steno. Dolžina zidu ni znana. Robot je v eni od kletk, ki se nahaja neposredno desno od stene. Prav tako ni znan začetni položaj robota. Eden od možnih položajev robota je prikazan na sliki (robot je označen s črko "P"): Napišite algoritem za delo, ki pobarva vse celice ob steni: na levi, začenši z vrha nepobarvane enega in skozi enega; na desni, začenši od spodnjega zasenčenega enega in skozi enega. Robot mora barvati le celice, ki izpolnjujejo ta pogoj. Na primer, za zgornjo sliko mora robot izpolniti naslednje celice (glej sliko): Končna lokacija robota je lahko poljubna. Algoritem mora rešiti problem za poljubno velikost stene in poljubno veljavno začetno pozicijo robota. Pri izvajanju algoritma se robot ne sme uničiti.


Napišite algoritem za robota, ki pobarva vse celice, ki se nahajajo levo od navpične stene in nad vodoravno steno ter ob njih. Robot mora barvati le celice, ki izpolnjujejo ta pogoj. Na primer, za zgornjo sliko mora robot pobarvati naslednje celice (glej sliko).


n Napišite algoritem za robota, ki barva celice ob steni, zgoraj in spodaj, začenši z leve in vsako drugo. Robot mora barvati le celice, ki izpolnjujejo ta pogoj. Na primer, za dano sliko a) Robot mora prebarvati naslednje celice (glej sliko b).

Končni položaj robota je lahko poljuben. Algoritem mora rešiti problem za poljubno velikost stene in kateri koli sprejemljiv začetni položaj robota.



R

  1. Neskončno polje ima dolgo navpično steno. Dolžina zidu ni znana. Robot je v eni od celic, ki se nahaja neposredno na levi strani stene. Prav tako ni znan začetni položaj robota. Eden od možnih položajev robota je prikazan na sliki (robot je označen s črko "P"):
Napišite algoritem, ki pobarva vse celice ob steni:

  • vse na levi;

  • na desni, začenši od zgornje nepobarvane in skozi eno.
Robot mora barvati le celice, ki izpolnjujejo ta pogoj.

B
1102_GIA2011

Neskončno polje ima dve vodoravni steni. Dolžina sten ni znana. Razdalja med stenama ni znana. Robot se nahaja nad spodnjo steno v kletki na njenem levem robu. Napišite algoritem za robota, ki pobarva vse celice, ki se nahajajo nad spodnjo steno in pod zgornjo steno ter mejijo nanje. Robot mora barvati le celice, ki izpolnjujejo ta pogoj. Na primer, za zgornjo sliko mora robot pobarvati naslednje celice (glej sliko):

Končna lokacija robota je lahko poljubna. Algoritem mora rešiti problem za poljubno velikost polja in poljubno dopustno razporeditev sten znotraj pravokotnega polja. Pri izvajanju algoritma se robot ne sme uničiti.


IN
1103_GIA_2011


Na neskončnem polju je vodoravna stena. Dolžina zidu ni znana. Navpična stena neznane dolžine sega navzdol od desnega konca stene. Robot se nahaja nad vodoravno steno v kletki, ki se nahaja na njenem levem robu. Slika prikazuje enega od možnih načinov postavitve sten in robota (robot je označen s črko “P”).

Napišite algoritem za robota, ki pobarva vse celice nad vodoravno steno in desno od navpične stene ter ob njih. Robot mora barvati le celice, ki izpolnjujejo ta pogoj. Na primer, za zgornjo sliko mora robot pobarvati naslednje celice (glej sliko).