Varnost.  Nastaviti.  Internet.  Obnovitev.  Namestitev

Performer Robot. Pomožni algoritmi

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 ADIO

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).

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.

IZVEDBA UČNE URE RAČUNALNIŠTVA

Tema lekcije

"Uporaba pomožnih algoritmov za risarja"

Starost učencev

1 2 leti (6. razred)

Vrsta lekcije

Osvajanje novih znanj

Obrazec lekcije

Modularna lekcija

Namen lekcije:

Pri študentih oblikovati razumevanje pojma "pomožni algoritem" kot enega od načinov optimizacije programske kode.

Cilji lekcije:

    razvijati ideje učencev o izvajalcih

    utrditi idejo o algoritmu kot modelu izvajalčeve dejavnosti

    uvesti pomožne algoritme

    krepiti veščine vodenja izvajalca

Načrtovani rezultati

predmet – veščine razvijanja algoritmov za nadzor izvajalca;

metapredmet – sposobnost samostojnega načrtovanja poti za doseganje ciljev; povezujte svoja dejanja z načrtovanimi rezultati, spremljajte svoje dejavnosti, določite načine delovanja v okviru predlaganih pogojev, prilagodite svoja dejanja glede na spreminjajoče se razmere; ovrednotiti pravilnost učne naloge; sposobnost razdelitve naloge na podnaloge; izkušnje pri sprejemanju odločitev in vodenju izvajalcev z algoritmi, sestavljenimi zanje;

osebno – sposobnost povezovanja izobraževalnih vsebin z lastnimi življenjskimi izkušnjami, razumeti pomen razvitega algoritemskega mišljenja za sodobnega človeka.

Materialna in tehnična oprema (didaktični pripomočki ipd.)

Učitelju: predstavitev lekcije; Izroček

Študentu: kemični svinčnik, svinčnik, ravnilo, učbenik, delovni zvezek

UMK (video serija)

Multimedijska predstavitev, izročki za vsakega študenta: učni načrt, prijavni list

Rabljeni materiali

Informatika: metodični priročnik za 5.-6. razred/L.L. Bosova, A.Yu. Bosova. – M.: Binom. Laboratorij znanja, 2014

Računalništvo: Učbenik za 6. razred/L.L. Bosova, A.Yu. Bosova. – M.: Binom. Laboratorij znanja, 2013

Računalništvo: Delovni zvezek za 6. razred/L.L. Bosova, A.Yu. Bosova. – M.: Binom. Laboratorij znanja, 2013

Tema: Pomožni algoritmi za risarja

Tehnološki zemljevid (modul) lekcije

Ocenjevalni rezultat

(največja točka)

UE – 0

2 minuti.

Integracijski cilj: Programerji imajo seznam pravil dobrega sloga, eno od teh pravil je: "Ne ponavljaj se," kar pomeni, da se morate izogibati vedno znova podvajanju delov programske kode. Danes v razredu:

    se boste seznanili z enim od načinov optimizacije programske kode

    Izpopolnjevali se boste v programskem okolju KuMir

    razvili boste logično mišljenje in kritičen odnos do prejetih informacij

UE – 1

Posodabljanje osnovnega znanja.

Tarča : posodobiti pridobljeno znanje

1. vaja.

a) premik na točko (5,2) __________

b) premik za vektor (3,4) ________

c) premik na točko (1,4) __________

Naloga 2.

uporabite Draftsman

alg

začetek

    premik na točko (2,4)

    premik na točko (4,1)

    premik na točko (0,0)

con

uporabite Draftsman

alg

začetek

    spustite pero

    premikanje po vektorju (0,3)

    premikanje po vektorju (3,0)

    premikanje po vektorju (0,-3)

    premikanje po vektorju (-3,0)

con

Pozorno preberite cilj UE – 1

Delo v parih v modulu

Preizkusite se z odgovori, napisanimi na tabli

Pravilno opravljena naloga 1 se ocenjuje s 3 točkami, po 1 točko za vsako točko (a, b, c)

Pravilno opravljena naloga 2 se ocenjuje z 2 točkama, po 1 točko za vsako točko (a, b)

Največje število točk za delo z UE-1 =5

____________

UE – 2

Učenje nove snovi.

13 min.

Cilj: se seznanijo s pojmom pomožni algoritem, razširijo nabor problemov, ki jih lahko rešuje pomožni algoritem, se naučijo sestaviti glavni in pomožni algoritem za risarja

V zadnji lekciji ste izdelali algoritem za risarja, po katerem nariše eno zvezdico.

    Ugotovite slabosti takega algoritma:

_________________________________

_________________________________

_________________________________

_________________________________

    Kako se lahko izognete tem težavam?

_________________________________

_________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

Pozorno preberi cilj UE – 2

Individualno delo z nalogami 1 – 3

Pri delu s točko 4 uporabite gradivo, predstavljeno v 18. odstavku vašega učbenika (str. 123 – 125), predstavitev učitelja.

Obravnava točk 1 - 4 – skupinsko delo frontalno

Naloge 5 – 6 opravite posamezno

9

Ocenjevanje nalog

Naloga 1-2 pravilno opravljena 1 točka

____________

Naloga 3 navaja vsaj 3 pomanjkljivosti - 1 točka

_____________

Naloga 4 nakazuje načine za rešitev problema:

1 način = 1 točka, 2 načina = 2 točki

_____________

Naloga 5. Na koordinatni ravnini je 6-8 zvezd, katerih velikost ustreza "zvezdi" - 1 točka

____________

Glavni algoritem "Space" je bil sestavljen - 3 točke

____________

UE – 3

Praktično delo

Cilj: Razviti sposobnost dela s pomožnimi algoritmi v programskem okolju KuMir

1. vaja. Implementirajte algoritem, ki ste ga ustvarili v programskem sistemu KuMir

Naloga 2 (ustvarjalno). Pomislite, kakšno letalo bi lahko bilo v vesolju:

a) nariši jo na koordinatno ravnino poleg zvezd na papir

b) svoj algoritem dopolnite s kodo letala in ga implementirajte v programski sistem KuMir

Pozorno preberi cilj UE – 3

Individualno delo z nalogami

Opravljeno nalogo sporoči učitelju v nadzor.

Primer si lahko ogledate v Dodatku 1

Največje število točk za delo z UE-2 =6

Pravilno opravljena naloga 1 se ocenjuje z 2

V celoti opravljena naloga 2 (ustvarjalno) se ocenjuje s 4 točkami

_____________

UE – 4

Odsev

Cilj: Analizirajte svoje dosežke v razredu

Podajte odgovor na vsako vprašanje

1. Ponovno preberite cilje lekcije

2. Ali ste dosegli svoje cilje?

__________________________________

3. Kaj vam je preprečilo doseganje vaših ciljev?

__________________________________

4. Kaj se ti je zdelo najtežje?

__________________________________

5. Kaj ni povzročalo težav?

__________________________________

6. Kako ocenjujete svoje delo?

7. Ste dosegli manj kot 20 točk? (če da, potem delajte doma in imate možnost, da se ponovno testirate). Vso srečo!

Domača naloga:

Preglejte vse zapiske med lekcijo.

§18(3), št.6 na strani 128; št. 216.

Pozorno preberi cilj UE – 4

Odgovori na vprašanja

Izračunajte število točk, ocenite se (priloga 2, priloga 3)

APLIKACIJE

Priloga 1

Primer opravljene naloge

Dodatek 2

Kontrolni list

Priimek Ime ______________________________________________

Dodatek 3

17 -19

(85 – 99%)

visoka

Super si!

15 - 16

(75 – 84 %)

povprečje

Še malo in bo "5"

10 - 14

(50 – 74%)

kratek

Bodite bolj previdni

1 - 9

(0,7 – 49%)

zelo nizko

In o čem razmišljate v razredu?

nič

Se nisi udeležil pouka?

odgovori

UE – 1

1. vaja. Začetni položaj risarja je točka A, na katero se lahko premakne z izvajanjem ukaza:

a) premik na točko (5,2) ____F ______

b) premik za vektor (3,4) __C ______

c) premik na točko (1,4) ____A ______

Naloga 2. Začetni položaj risarja je izhodišče koordinat, pero je dvignjeno. Zaženite algoritem in določite, kakšno obliko bo narisal.

a) NIČ, NI BILO UKAZA ZA SPUŠČANJE PERO

uporabite Draftsman

alg

začetek

    premik na točko (2,4)

    premik na točko (4,1)

    premik na točko (0,0)

con

b) KVADRAT

uporabite Draftsman

alg

začetek

    spustite pero

    premikanje po vektorju (0,3)

    premikanje po vektorju (3,0)

    premikanje po vektorju (0,-3)

    premikanje po vektorju (-3,0)

con

UE – 2

    Kako naj se spremeni algoritem, če mora risar narisati zvezdno nebo z 20, 50, 1000 zvezdami?

Ekip bo več

    Koliko vrstic bo vzel algoritem za 10 zvezdic?

    Ugotovite slabosti takšnega algoritma: okoren, podvajanje, velika verjetnost napake.

    Kako se lahko izognete tem težavam: uporabite pomožni algoritem, lahko mu rečejo tudi zanka

    Na koordinatno ravnino postavite 6-8 zvezdic, velikost vsake mora ustrezati zvezdi, ki ste jo narisali v zadnji lekciji

    Zapišite glavni algoritem "Space" z uporabo algoritma "Star" kot pomožnega algoritma

uporabite Draftsman

alg prostor

začetek

premik na točko (1,1)

zvezda

premikanje po vektorju (2, 2)

zvezda

premakni po vektorju (-2, 2)

zvezda

premikanje po vektorju (2, 2)

zvezda

raketa

premik na točko (13,1)

zvezda

premakni po vektorju (-2, 2)

zvezda

premikanje po vektorju (2, 2)

zvezda

premakni po vektorju (-2, 2)

zvezda

con

alg zvezdica

začetek

spustite pero

nastavite barvo ("rumena")

premakni z vektorjem (1,2)

premakni z vektorjem (1,-2)

premakni po vektorju (-2,1)

premakni z vektorjem (2,0)

premakni z vektorjem (-2,-1)

dvignite pero

con

alg raketa

začetek

premik na točko (6,1)

spustite pero

nastavite barvo ("rdeča")

premakni z vektorjem (0,1)

premikanje po vektorju (1,1)

premakni po vektorju (0,4)

premikanje po vektorju (1,1)

premakni z vektorjem (1,-1)

premakni z vektorjem (0,-4)

premakni z vektorjem (1,-1)

premakni z vektorjem (0,-1)

premakni po vektorju (-1,1)

premakni z vektorjem(-1,-1)

premakni po vektorju (-1,1)

premakni z vektorjem(-1,-1)

dvignite pero

Praktično delo »Izvajalec risarja. Uporaba pomožnih algoritmov z argumenti"

Naloga A. Pomožni algoritem, ki ga potrebujemo (ki nariše kvadrat določene dolžine), lahko zapišemo takole:

alg kvadrat ( arg stvari A)
začetek
. spustite pero
. premikanje po vektorju(0,a)
. premikanje po vektorju(a,0)
. premikanje po vektorju(0,-a)
. premikanje po vektorju(-a,0)
. dvignite pero
con

vstop " alg kvadrat ( arg stvari a)" pomeni, da ima "kvadratni" algoritem en argument (arg) "a", ki je lahko poljubno realno število. Če želite poklicati ta algoritem, morate napisati na primer "kvadrat (2)" - dobimo kvadrat s stranico 2 ali "kvadrat (3)" - dobimo kvadrat s stranico 3 itd. Neka posebna vrednost “a” bo dobil le, ko se program izvaja med ustreznim pomožnim algoritmom. In povsod bo namesto "a" to številko nadomestil računalnik.

Program za risanje te slike je lahko takšen:

uporabite Draftsman
alg kvadrati
začetek
. premakniti do točke(1,1)
. kvadrat (2)
. premakniti do točke(4,1)
. kvadrat (3)
. premakniti do točke(8,1)
. kvadrat (4)
. premakniti do točke(13,1)
. kvadrat (5)
. premakniti do točke(0,0)
con
alg kvadrat ( arg stvari A)
začetek
. spustite pero
. premikanje po vektorju(0,a)
. premikanje po vektorju(a,0)
. premikanje po vektorju(0,-a)
. premikanje po vektorju(-a,0)
. dvignite pero
con

Naloga B. Naučimo risarja novih ukazov. Naj se eden od ukazov imenuje " vrstica(arg stvari x1,y1,x2,y2)» – za risanje črte od točke (x1,y1) do točke (x2,y2).

algčrta ( arg stvari x1, y1, x2, y2)
začetek
. premakniti do točke(x1,y1)
. spustite pero
. premakniti do točke(x2,y2)
. dvignite pero
con

Naloga B. Drugi ukaz naj se imenuje " pravokotnik (arg stvari x1,y1,x2,y2)" za risanje pravokotnika. Točka (x1,y1) je ena točka diagonale AC pravokotnika, točka (x2,y2) pa nasprotna točka. Preden napišete algoritem, morate razumeti, čemu so enake koordinate drugih dveh točk.

Pomožni algoritem je lahko takšen:

alg pravokotnik( arg stvari x1, y1, x2, y2)
začetek
. premakniti do točke(x1,y1)
. spustite pero
. premakniti do točke(x2,y1)
. premakniti do točke(x2,y2)
. premakniti do točke(x1,y2)
. premakniti do točke(x1,y1)
. dvignite pero
con

Naloga G. Zdaj bomo s temi ukazi narisali hišo:

uporabite Draftsman
alg hiša
začetek
. pravokotnik (2,1,8,5)
. pravokotnik (3,2,5,4)
. pravokotnik (6,1,7,4)
. črta (1,4,5,8)
. črta (5,8,9,4)
con
algčrta ( arg stvari x1, y1, x2, y2)
začetek
. premakniti do točke(x1,y1)
. spustite pero
. premakniti do točke(x2,y2)
. dvignite pero
con
alg pravokotnik( arg stvari x1, y1, x2, y2)
začetek
. premakniti do točke(x1,y1)
. spustite pero
. premakniti do točke(x2,y1)
. premakniti do točke(x2,y2)
. premakniti do točke(x1,y2)
. premakniti do točke(x1,y1)
. dvignite pero
con

Opomba: seveda lahko sočasno s temi ukazi uporabljamo tudi standardne ukaze risarja (premakni v točko, premakni v vektor ...).

Naloga D. Narišite sami, kar bo narisal risar, po algoritmu:

uporabite Draftsman
alg spirala
začetek
. premakniti do točke(3,3)
. spustite pero
. obrat(1); obrniti (3); obrat (5); obrat(7); obrniti (9)
. dvignite pero
con
alg obrat( arg stvari A)
začetek
. premikanje po vektorju(a, 0)
. premikanje po vektorju(0, -a)
. premikanje po vektorju(-a-1.0)
. premikanje po vektorju(0, a+1)
con.

Kirjanov Timofej Fedorovič


Algoritem v jeziku KuMir je zapisan takole:

alg algorithm_type algorithm_name (opis argumentov in rezultatov)
podan je pogoj_uporabnost_algoritma
potrebujete execution_goal algoritma
začetek
zaporedje ukazov
con

Opis algoritma je sestavljen iz:
  • naslov (del pred službeno besedo beg),
  • telo algoritma (del med besedama začetek in konec).
Morda manjkajo deli "podano", "mora", kot tudi "vrsta algoritma" in "opis argumentov in rezultatov".

Najenostavnejši algoritmi

Razmislite o naslednjem pomožnem algoritmu za izvajalca Draftsman.

Primer algoritma

alg kvadrat
začetek
spustite pero
premakni z vektorjem (0,2)
premakni z vektorjem (2,0)
premakni z vektorjem (0,-2)
premakni po vektorju (-2,0)
dvignite pero
con

Omogoča risanje kvadrata 2x2 (začenši od spodnjega levega kota). Če želite to narediti, morate uporabiti v glavnem programu klicni ukaz pomožni algoritem, ki bo videti takole:

Algoritmi z argumenti

Za risanje kvadratov različnih velikosti lahko uporabite algoritem z argumenti.

Primer algoritma

alg kvadrat (arg stvar a)
začetek
spustite pero
premikanje z vektorjem (0, a)
premakni z vektorjem (a, 0)
premikanje z vektorjem (0, -a)
premakni z vektorji, 0
dvignite pero
con

Beseda arg pomeni, da ima algoritem prepir(a) in ta argument je realnega tipa. Ukaz za klic takega algoritma je lahko videti takole

(v tem primeru bo narisan kvadrat 2x2) ali npr.
(v tem primeru bo narisan kvadrat 5x5).

Algoritmi z rezultati

Algoritem lahko informacije ne le sprejema, ampak jih tudi vrača. V ta namen se uporablja posebna vrsta količine - rezultate.

Primer algoritma z rezultati

alg hipotenuza (stvar a, b, res stvar c)
glede na a >= 0 in b >= 0 | dolžine krakov trikotnika
potrebujem | c = dolžina hipotenuze tega trikotnika
začetek
c:= sqrt(a**2 + b**2)
con

Tukaj je operativna beseda res označuje, da je vrednost c rezultat in se bo njena vrednost med delovanjem algoritma spreminjala. Na primer po klicu

hipotenuza (3, 4, c)

Vrednost c bo imela vrednost 5.

Algoritmi-postopki in algoritmi-funkcije

Zgoraj obravnavani primeri so algoritem-postopki. V Idolu so tudi funkcijski algoritmi. Algoritem-funkcija po izvedbi vrne vrednost rezultata.
Opisna pravila Algoritmi-postopki in algoritmi-funkcije imajo dve razliki.
Prvič, za algoritme funkcij na mestu vrsta_algoritma mora biti podana ena od preprostih vrst algoritemskega jezika (stvari, int itd.), ki določa vrsto vrednosti, ki jih ta funkcija vrne.
Drugič, v telesu funkcije algoritma je treba uporabiti storitveno vrednost vrednost, ki ji je dodeljena izračunana vrednost funkcije. Njegov opis je naslov algoritma, sicer pa se vrednost vrednosti uporablja na enak način kot katera koli druga vmesna vrednost. (V telesu postopka algoritma uporabite vrednost je prepovedano.)
Klicanje algoritma-postopka je ločen ukaz algoritemskega jezika in ima obliko: