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:
Set začetno okolje glede na pogoje problema:
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?
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
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.
TO
Nujnodano
koridor2. Robot se nahaja v zgornji celici ozkega navpičnega hodnika. Širina koridorja je ena celica, dolžina hodnika je lahko poljubna.
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):
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:
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.
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 | |||||
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"):
vse na levi;
na desni, začenši od zgornje nepobarvane in skozi eno.
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:
Opis algoritma je sestavljen iz:alg algorithm_type algorithm_name (opis argumentov in rezultatov)
podan je pogoj_uporabnost_algoritma
potrebujete execution_goal algoritma
začetek
zaporedje ukazov
con
- naslov (del pred službeno besedo beg),
- telo algoritma (del med besedama začetek in konec).
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 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: