Ciklus s postuvjetnim idolom. Ciklusi i uvjeti u jeziku idola. Tabelarne vrijednosti i rad s njima

Ugniježđene petlje i grane u sustavu KUMIR

Jedan od temeljnih pojmova u informatici je koncept algoritma. Podrijetlo samog pojma "algoritam" povezuje se s matematikom. Ova riječ dolazi od Algorithmija - latinskog pisanja imena Muhammada al-Khwarizmija (787. - 850.), izvanrednog matematičara srednjovjekovnog Istoka. U svojoj knjizi "O indijskom brojanju" formulirao je pravila za pisanje prirodnih brojeva arapskim brojevima i pravila za manipulaciju njima u stupcu.

U budućnosti se algoritam počeo nazivati ​​točnim receptom koji određuje slijed radnji koje osiguravaju dobivanje željenog rezultata iz početnih podataka.

Algoritam može biti dizajniran tako da ga izvršava čovjek ili automatski uređaj... Izrada algoritma, čak i najjednostavnijeg, kreativan je proces. Dostupan je isključivo živim bićima, i Dugo vrijeme vjerovalo se da samo osoba. U XII stoljeću. napravljen je latinski prijevod njegove matematičke rasprave iz kojega su Europljani učili o decimalnom pozicijski sustav računanje i pravila aritmetike za višeznamenkaste brojeve. Upravo su se ta pravila u to vrijeme zvala algoritmi.

Gore navedena definicija algoritma ne može se smatrati strogom - nije sasvim jasno što je "precizan recept" ili "slijed radnji koji osigurava da se dobije željeni rezultat". Stoga se obično formulira nekoliko općih svojstava algoritama kako bi se algoritmi razlikovali od drugih instrukcija.

Ova svojstva su:

Diskretnost (diskontinuitet, razdvajanje) - algoritam treba predstavljati proces rješavanja problema kao uzastopno izvođenje jednostavnih (ili prethodno definiranih) koraka. Svaka radnja koju daje algoritam izvodi se tek nakon što je izvršenje prethodne završilo.

Sigurnost - svako pravilo algoritma mora biti jasno, nedvosmisleno i ne ostavljati mjesta proizvoljnosti. Zbog ovog svojstva, izvođenje algoritma je mehaničke prirode i ne zahtijeva nikakve dodatne upute ili informacije o problemu koji se rješava.

Učinkovitost (konačnost) - algoritam bi trebao dovesti do rješenja problema u konačnom broju koraka.

Masovni karakter - algoritam za rješavanje problema razvijen je u općem obliku, odnosno mora biti primjenjiv za određenu klasu problema koji se razlikuju samo po početnim podacima. U tom slučaju se početni podaci mogu odabrati iz određene regije, koja se naziva područjem primjenjivosti algoritma.

Metode za pisanje algoritama

Za snimanje algoritama koriste se različiti alati. Izbor alata određen je vrstom algoritma koji se izvršava.

Postoje sljedeće glavne metode pisanja algoritama:

- verbalni kada je algoritam opisan ljudskim (prirodnim) jezikom. Nacionalni jezici su prirodni (ruski, engleski, njemački itd.);

- simbolički kada je algoritam opisan pomoću skupa znakova i program je (programi su napisani pomoću programskih jezika);

- grafički kada se algoritam opisuje pomoću skupa grafičke slike(blok dijagram).

Općeprihvaćene metode snimanja sugrafičko snimanje korištenjem blok dijagrama izapis znakova uz pomoć nekog algoritamskog jezika – programa.

Na grafički zapisi su sastavljeni blok dijagrami, na kojima su različiti dijelovi algoritma naznačeni pomoću konvencionalnih simbola (geometrijskih likova). Elementi blok dijagrama prikazani su na slici.

Programski sustav KUMIR

Prilikom savladavanja teme algoritama koristit ćemo se programskim sustavom KUMIR.

Kumir (Set obrazovnih SVJETOVA) je programski sustav dizajniran za podršku početni tečajevi informatike i programiranja u srednjoj i srednjoj školi.

Sustav Kumir koristi školski algoritamski jezik s ruskim vokabularom i ugrađenim izvršiocima Robot i Draftsman itd.

Prilikom ulaska u program, Kumir stalno prati njegovu ispravnost, obavještavajući u poljima programa o svim greškama koje pronađe.

Kada se program izvršava u načinu rada korak po korak, Kumir prikazuje rezultate operacija dodjeljivanja i vrijednosti logičkih izraza na poljima. To vam omogućuje da ubrzate proces svladavanja osnova programiranja.

Grafičar Robot

Grafički izvođač Robot omogućuje vam svladavanje osnova programiranja i razumijevanje rada glavnih algoritamskih struktura.

Grafički umjetnikje kontrolni objekt. Paketmi ćemo to učiniti s vama.

Robot izvođač je u nekimapočetna postavka - pravokutno polje, podijeljeno na ćelije, između kojih mogu stajati zidovi.

Robot se može kretati po terenu, zaobilazeći zidove i slikajući ćelije. Robot ne može proći kroz zid, ali može provjeriti postoji li zid pored njega. Robot ne može izaći izvan graničnog okvira polja.

R
OBOT može izvršavati naredbe
: gore, dolje, desno, lijevo, obojiti.

Robot može provjeriti uvjete : slobodno odozgo, slobodno dolje, slobodno desno, slobodno lijevo, dodavanjem čestice ne preokreće stanje. Nije slobodan odozgo, nije slobodan odozdo, nije slobodan s desne strane, nije slobodan s lijeve strane.

Osnovne algoritamske strukture

    Postoje tri osnovne algoritamske strukture (konstrukcije)-linearni (slijedeći), granasti i ciklus, iz kojeg možete izgraditi bilo koji algoritam.Svaki algoritamska struktura ima jednu ulaznu i jednu izlaznu točku.

    Algoritme ćemo pisati i na školskom jeziku i u obliku blok dijagrama.

Linearna struktura

Linearna struktura je najjednostavnija organizacija algoritama - naredbe se izvršavaju uzastopno jedna za drugom

Primjer:

ciklička struktura (ciklus)

    ciklička struktura (ciklus) omogućuje višestruko izvršavanje istih naredbi. Postoji nekoliko vrsta cikličkih struktura.

    Svaka ciklička struktura ima dva dijela -naslov i tijelo petlje.

    Poziva se skup naredbi koje se ponavljaju dok se petlja izvršavatijelo ciklusa.

    Naslov određuje broj ponavljanja tijela petlje.

Ciklus za broj ponavljanja (puta)

nts N jednom

<команда>

kts

NS Primjer:

koristiti Robot
alg stupac

rano
.
nts 5 jednom
... ... premazati
... ... gore
.
kts

kon

Petlja s preduvjetom (za sada)

(ulazak u algoritamski jezik)

nts dok <условие>

<команда>

Do c

Primjer:

koristiti Robot
alg Crta

rano

nts dok slobodan odozgo
premazati
gore
kts

kon

Petlja s postuvjetom (at)

(napisano algoritamskim jezikom)

n c

<команда>

kts_with <условие>

Primjer:

koristiti Robot
alg Crta

rano
nts

premazati; gore

kts_with slobodno otišao

kon

Struktura grananja.

    Struktura grananja. Neki zadaci zahtijevaju različite radnje ovisno o ispunjavanju određenih uvjeta. U takvim slučajevima se govori o grananju algoritma.

    Za provedbu strukture „grananja“ koriste se dva strukturirana tima školske AY – ako i po izboru, od kojih svaki može biti potpun i nepotpun.

    U blok dijagramima i školi AY<условие>- ovo je boolean izraz, što može rezultirati jednom od dvije moguće vrijednosti -pravi ili Laganje. U školskom jeziku ove vrijednosti se bilježe kao da i ne. U programskim jezicima često se koriste vrijednostiPravi i Netočno... Računalo pohranjuje ove vrijednosti kao 1 i 0.

Potpuno grananje

(napisano algoritamskim jezikom)

e ako <условие>
. .
zatim <команда1>
. .
inače <команда2>
svi

Primjer:

koristiti Robot
alg grana_puna

rano
.
ako slobodan odozgo
. .
zatim gore
. .
inače put prema dolje
.
svi

kon

Nepotpuno grananje

(napisano algoritamskim jezikom)

e ako <условие>
. .
zatim <команда1>
svi

Primjer:

koristiti Robot
alg grana_nedovršena

rano
.
ako slobodan odozgo
. .
zatim gore
.
svi

kon

Pomoćni algoritam (postupak)

    Algoritam kojim se rješava neki podzadatak iz glavnog problema i koji se u pravilu ponavlja više puta naziva se pomoćni algoritam.

    Pomoćni algoritam napisan u programskom jeziku naziva se potprogram ili procedura.

    Algoritam pomoćnika poziva se iz glavnog programa kroz ime. Pomoćni algoritam je napisan nakon glavnog algoritma. Imati pomoćni algoritam mora postojati ime.

koristiti Robot
alg
rano
put prema dolje

kvadrat
put prema dolje

put prema dolje
kon

alg kvadrat
rano

premazati

nadesno

premazati

put prema dolje

premazati

nalijevo

premazati
kon

Ugniježđene petlje i grane

Kod rješavanja nekih problema s robotom potrebno je koristiti ugniježđene petlje ili grane.

C Icl se naziva ugniježđen ako je ugniježđen unutar druge petlje.

Pogledajmo ugniježđenu petlju koristeći petlju za sada kao primjer.

Znamo da se petlja sastoji od zaglavlja petlje koje definira koliko puta će se tijelo petlje ponoviti.

Tijelo petlje je dio petlje koji se ponavlja kada se petlja izvrši.

Tijelo petlje može biti naredba, više naredbi ili druga petlja ili grana.

U slučaju kada je tijelo petlje druga petlja ili grana, oni se nazivaju ugniježđeni.

Ugniježđena petlja

U prvom prolazu vanjska petlja poziva unutarnju, koja se izvršava dok ne završi, nakon čega se kontrola prenosi na tijelo vanjske petlje. U drugom prolazu vanjska petlja ponovno poziva unutarnju. I tako sve dok se vanjski ciklus ne završi.

Ugniježđena grana

Razmotrimo rješenje problema s ugniježđenim granama i petljama:

Problem 1 Robot je na zidu s rupama, kreće se po zidu udesno, robot mora prefarbati sve ćelije u kojima ima rupa.

koristiti Robot alg rano
.
nts dok desno s slobodno
nts dok odozdo slobodno
prebojati;
nadesno
. .
kts
... ... nadesno
.
kts kon S
Ostavimo za sada algoritam za rješavanje problema s vanjskom petljom, a za sada ugniježđenom petljom.

R Riješimo isti problem koristeći za sada vanjsku petlju i ugniježđeno grananje.

Riješimo isti problem koristeći vanjsku petlju at i ugniježđenu petlju za sada.

Upoznavanje s programom Kumir svladavanje osnova programiranja.

U njemu učenici mogu steći praktične vještine u stvaranju i otklanjanju pogrešaka u algoritmu, radeći s izvođačima kao što su Robot, Draftsman, Aquarius, Skakavac, Kornjača.

Prilikom proučavanja jednog od najtežih odjeljaka informatike "algoritmi i programiranje".

Svrha razvoja :

Preuzimanje datoteka:


Pregled:

Metodički razvoj informatike.

Tema: "Robot izvođač u programu Kumir na satovima informatike"

nastavnik tehnologije "Informatika i ICT"

Objašnjenje

Cilj razvoja: proučiti mogućnosti programiranja na primjeru konkretnog robota izvođača koji koristi IDC okruženje; dati praktične vještine u radu s izvođačem.

Metodički razvojsastavljeno za nastavu informatikeVježbajte na računalu: rad s izvršiteljem obuke algoritama; izrada linearnih, granastih i cikličkih algoritama za kontrolu izvršitelja; kompilacija algoritama složene strukture; korištenje pomoćnih algoritama (procedura, potprograma).

Učenici bi trebali znati:

  • što je izvođač; SKI Robot, Robot performer environment;
  • što je algoritam;koja su glavna svojstva algoritma;
  • metode pisanja algoritama: blok dijagrami, obrazovni algoritamski jezik;osnovne algoritamske konstrukcije: praćenje, grananje, petlja; strukture
  • algoritmi; ⇒ dodjela pomoćnih algoritama; tehnologije za izgradnju složenih algoritama:

Učenici bi trebali biti sposobni:

  • razumjeti opise algoritama u obrazovnom algoritamskom jeziku;
  • pratiti algoritam za poznatog izvođača;
  • sastaviti linearne, granaste i cikličke algoritme upravljanja za robota izvršitelja; istaknuti podzadatke; definirati i koristiti pomoćne algoritme.

Lekcija 1 (2 sata) Lekcija 1.

Umjetnik robot.Sustav zapovijedi izvršitelja.

Plan učenja.

  1. Opis SKI izvođača, okruženje izvođača.

2. Analiza tipičnih algoritama robota.

Tijekom nastave.

Razmotrite opis izvođača.

Umjetničko okruženje: Performer Robot se može kretati labirintom nacrtanim na ravnini podijeljenoj na ćelije.

SKI Robot : jednostavne naredbe: gore, dolje, lijevo, desno, obojiti.

Booleove naredbe: (provjera uvjeta)

vrh slobodno dno slobodno

lijevo slobodno desno slobodno.

Logički spojevi: I, NE, ILI:

Primjer: (nije lijevo slobodno) ili (nije desno slobodno)

Naredba podružnice: naredba petlje:

Ako je uvjet zatim nts dok uvjet

Serija naredbi zapovjedna serija

sve kts

(U CMM-ovima iz 2009. godine robotske naredbe su se razlikovale od onih na koje su navikli za djecu, što je dovelo do zbunjenost :)

Naredba podružnice: naredba petlje:

Ako je uvjet zatim nts dok je uvjet učiniti

Serija naredbi zapovjedna serija

kraj kraj

Opći prikaz prozora programa Kumir. Grafičko okruženje robota:

U CMM-ovima demonstracije iz 2010., format naredbe je promijenjen u uobičajeno

Postupak izrade algoritma:

1. Timovi Alati -Uređivanje početnog okruženjanacrtajte zidove na polju robota i postavite robota u početni položaj.

2. Timovi Robot - Promijenite početno okruženjezadržati novo okruženje.

3. Timovi Umetni - Koristi robotaodrediti izvršitelja.

4. U prozoru dokumenta zapišite algoritam pomoću izbornika Umetnuti.

5. Izvršenje naredbi - izvršavajte kontinuirano (ili korak po korak) za pokretanje algoritma.

6. Razmotrite rezultat izvođenja algoritma i, ako je potrebno, ispravite ga.

Lekcija 1 (2 sata) Lekcija 2.

Praktični rad "Izrada linearnih algoritama".

Zadaci: 1. Robot na proizvoljnoj točki u polju. Obojite ćeliju iznad, ispod i desno od izvorne pozicije.

  1. Robot na proizvoljnoj točki u polju. Pomaknite robota 4 ćelije udesno slikajući ih.
  2. Stvorite novo početno okruženje crtanjem kvadrata sa stranicom od 4 ćelije na ploči. Spremite postavku kao početnu točku.
  3. Stvorite novo početno okruženje crtanjem hodnika s šetnicama u zidovima na terenu. Spremite namještaj kao obst2.fil. Promijenite početno okruženje u novostvoreno.

Lekcija 2 (2 sata) Lekcija 1.

Tema : Grananje i sekvencijalno usavršavanje algoritma.

Analiza CMM zadataka pomoću Robot performera.

koristiti robota

alg kim 2009

rano

ako nije slobodan odozdo

onda desno

svi

ako nije slobodan odozdo

onda desno

svi

ako nije slobodan odozdo

onda desno

svi

kon

koristiti robota

alg kim 2010

rano

ako nije slobodan odozdo

onda desno

svi

ako nije slobodan odozdo

onda desno

svi

ako nije slobodan odozdo

onda desno

svi

kon

NS. rob. broj 14. Kompilacija i otklanjanje pogrešaka algoritama grananja

Zadaci. Vidi privitak.

3. lekcija. Ciklični algoritmi. Lekcija 1-2

Cilj: otkriti bit pojma ciklusa u algoritmima, prikazati oblike bilježenja ciklusa u algoritmima, dati vještine izrade i snimanja cikličkih algoritama.

NS. rob. broj 15. Kompilacija i otklanjanje pogrešaka cikličkih algoritama

1. Napravite algoritam koji slika sve unutarnje ćelije uz zid.

koristiti robota

alg

rano

nts dok je na desnoj strani besplatno

premazati; nadesno

kts

nts dok se dno ne oslobodi

premazati; put prema dolje

kts

nts dok se dno ne oslobodi

premazati; nalijevo

kts

kon

2. Napravite algoritam koji oslikava sve ćelije između robota i zida. Udaljenost do zida nije poznata.

koristiti robota

alg

rano

nts dok je na desnoj strani besplatno

nadesno; premazati

kts

kon

3. Napravite algoritam koji boji sve ćelije između dva zida.

koristiti robota

alg uch3

rano

nts do (ne odozgo slobodno) ili (ne odozdo slobodno)

nadesno

ako (nije slobodno odozgo) i (ne odozdo slobodno)

zatim

premazati

svi

kts

kon

4. Napravite algoritam koji oslikava sve ćelije oko pravokutnog zida.

alg uch4

rano

prefarbati; gore

nts još nije pravo slobodan

premazati; gore;

kts

prefarbati; desno

nts dok se dno ne oslobodi

prefarbati; desno;

kts

farbati preko; dolje

nts još nije ostao slobodan

premazati prema dolje;

kts

prefarbati; lijevo

nts dok se vrh ne oslobodi

premazati; nalijevo;

kts

kon

koristiti robota

alg uch5

rano

nadesno

nts dok se dno ne oslobodi

premazati; nadesno

kts

premazati; put prema dolje

nts je do sada ostao slobodan

premazati; nalijevo

kts

nts još nije ostao slobodan

premazati; put prema dolje

kts

prefarbati; lijevo; obojiti; gore;

nts dok se vrh ne oslobodi

premazati; gore

kts

nts dok se vrh ne oslobodi

premazati; nalijevo

kts

kon

Lekcija 4 Lekcija 1

Algoritmi pomoćnika.

Cilj: upoznati pojam glavnog i pomoćnog algoritama; objasniti pravila korištenja pomoćnog algoritma; rastaviti primjere algoritama pomoću pomoćnog.

Plan učenja

1. Uvođenje novih pojmova (glavni i pomoćni algoritam, poziv) i objašnjenje novih pojmova.

2. Analiza primjera rješavanja zadataka pomoću pomoćnog algoritma.

Prilikom rješavanja nekih problema zgodno ih je rastaviti na manje podzadatke od kojih se svaki može formalizirati kao neovisni algoritam. U tom se slučaju prvo izrađuje takozvani glavni algoritam u kojem se za rješavanje podzadataka koriste pozivi pomoćnih algoritama, koji se naknadno dodaju. Ovo rješenje se zovemetodom sekvencijalnog pročišćavanja.Omogućuje skupini programera da radi na projektu, pri čemu svaki rješava svoj podzadatak.

U procesu rješavanja zadatka svaki pomoćni algoritam se po potrebi može podijeliti na manje pomoćne algoritme.

Poziva se naredba za izvođenje pomoćnog algoritma izazov i zapisan je u tijelu glavnog algoritma.

Jedan te isti algoritam se može smatrati glavnim i pomoćnim u odnosu na druge algoritme. U algoritamskom jeziku najprije se napiše glavni algoritam, a ispod slijede pomoćni.

Zadatak 1:

Robot je u gornjem lijevom kutu polja. Nema zidova ni oslikanih ćelija. Napravite algoritam pomoću pomoćnog koji crta četiri križa na jednoj vodoravnoj crti. Konačna pozicija robota može biti proizvoljna.

Riješenje

Raščlamba na ploči:

Zadatak 2. Robot je u gornjem lijevom kutu polja. Nema zidova ni oslikanih ćelija. Napravite algoritam koji u šahovskom obliku slika kvadrat 8 x 8. Konačni položaj robota može biti proizvoljan.

Lekcija 4 Lekcija 2

Praktični rad na računalu "Rješavanje problema pomoću pomoćnih algoritama".

Cilj : usaditi praktične vještine u konstruiranju algoritama metodom sekvencijalnog usavršavanja.

Plan učenja

1. Zadatak se u potpunosti odvija na računalu. Studenti dobivaju zadatke i izvode ih u programskom okruženju Kumir. Rezultati Rad se sprema kao datoteke za kasniju provjeru.

Zadatak1 ... Robot je u donjem lijevom kutu polja. Nema zidova ni oslikanih ćelija. Napravite algoritam koji slika 6 okomitih pruga iste duljine u 6 ćelija. Konačna pozicija robota može biti proizvoljna.

Zadatak 2 Pomoću pomoćnih napravite algoritam za slikanje ćelija koje čine broj 1212.

Domaća zadaća: Smislite algoritam koji crta sljedeću sliku: Koristite dva pomoćna algoritma da riješite problem.

Lekcija 5 Lekcija 1-2

Test

"Izrada algoritma u okruženju izvršitelja robota."

Cilj: provjeriti stečeno znanje o izradi i sposobnost analize algoritama u programskom okruženju Kumir.

Zadaci za testni rad podijeljeni su po razinama težine i uključuju 3 zadatka s robotskim izvršiteljem (1. i 2. zadatak — za grananje i petlje, zadatak 3 — za korištenje pomoćnog algoritma.) Tekstovi zadataka dati su u dodatku.

Početne i konačne postavke i izrađeni algoritmi se snimaju u datoteku.

Ocjena se postavlja prema stupnju težine zadatka. Učenik ima pravo sam izabrati vrstu zadatka.

A danas ćemo govoriti o ciklusima. Hajdemo shvatiti što je ciklus i kako naučiti kako izvršiti cikličke algoritme našeg robota.

Tako, što je ciklus? Zamislite da smo na satu tjelesnog i pred nama je zadatak napravite 7 čučnjeva... Ovaj zadatak se može formulirati kao linearni algoritam i tada će izgledati otprilike ovako:

napravite čučanj

napravite čučanj

napravite čučanj

napravite čučanj

napravite čučanj

napravite čučanj

napravite čučanj

Odnosno, ponovili smo naredbu čučnjeva 7 puta. Ima li smisla napisati 7 identičnih naredbi? Možda je lakše dati naredbu napravite 7 čučnjeva? Naravno, lakše je i ispravnije. Ovo je ciklus... I sami se možete sjetiti primjera ciklusa iz života – ima ih podosta.

Tako linearni algoritam , gdje se ponavljaju iste naredbe, možemo izdati kao ciklički algoritam - ovako:

ponoviti 7 puta

napravite čučanj

kraj ciklusa

Dakle, na jeziku koji smo izmislili, osmislili smo ciklus. Robot izvođač također ima mogućnost snimanja petlji. Štoviše, ciklusi su različiti... Opcija koju smo upravo razmotrili zove se brojač ciklus ili petlja s parametrom.

Vrste ciklusa.

Petlja s brojačem.

Ciklus sa brojačem koristi se kada se unaprijed zna koliko se ponavljanja mora napraviti. U gornjem primjeru čučnjeva, upravo je to slučaj.

Da biste napisali petlju s brojačem za izvršitelj, morate znati njegovu sintaksu. A on je ovakav:

nts<broj ponavljanja> puta

<команда 1>

<команда 2>

<команда n>

Ovdje moramo navesti broj ponavljanja (broj) i naredbe koje će se ponavljati. Pozivaju se naredbe koje se ponavljaju u petlji tijelo ciklusa.

Pogledajmo ovo na primjeru.

U početku je Robot bio u gornjem lijevom kavezu.

Počnimo s linearnim rješavanjem problema. U ovom slučaju ćemo slikati preko trenutne ćelije i pomaknuti 1 ćeliju udesno, a program će izgledati ovako:
koristiti robota
alg
rano

premazati

nadesno

premazati

nadesno

premazati

nadesno

premazati

nadesno

premazati

nadesno

premazati

nadesno

premazati

nadesno

Kao što vidite, naredbe za slikanje preko i udesno ponavljaju se 7 puta. Napišimo sada program koristeći petlju. Usput, da biste umetnuli ciklus u svoj program, možete otići na izbornik Umetnuti odaberite stavku nts-jednom-kts ili pritisnite jednu od kombinacija tipki Esc, P(rusko slovo P) ili Esc, H(latinsko slovo H). Štoviše tipke se moraju pritisnuti uzastopno- prvo Esc, pustite ga i tek onda P ili H.

Dakle, naš program u petlji izgledat će ovako:

koristiti robota

nts 7 puta

premazati

nadesno

Ako ga pokrenemo, vidjet ćemo da je rezultat isti – 7 popunjenih ćelija. Međutim, program je postao kraći i puno inteligentniji s algoritamske točke gledišta!

Kao zagrijavanje i konsolidaciju, predlažem da samostalno napišem program za robota, koji će nacrtati kvadrat sa stranom od 7 ćelija. Naravno pomoću petlje. Čekam rješenje u komentarima.

Petlja s uvjetom.

Prilikom rješavanja zadatka 19 GIA iz informatike s robotom neće raditi petlju s brojačem. Budući da je polje obično beskonačno, a zidovi nemaju određenu duljinu. Stoga nećemo moći odrediti broj ponavljanja za petlju s brojačem. Ali nema veze – pomoći će nam uvjetna petlja.

Vratimo se tjelesnom odgoju i promijenimo problem. Uostalom, netko možda neće napraviti 7 čučnjeva, dok drugi može napraviti 27. Može li se to uzeti u obzir pri izradi ciklusa? Naravno. Samo sada nećemo koristiti brojač (broj ponavljanja), već uvjet. Na primjer, dok niste umorni, radite čučnjeve. U tom slučaju osoba neće raditi određen broj čučnjeva, već čučnjeva dok se ne umori. A naša petlja na apstraktnom jeziku će izgledati ovako:

dok nisam umoran

napravite čučanj

kraj ciklusa

Riječi se u našem slučaju ne zamaraju – to je uvjet. Kada je to istina, petlja se izvršava. Ako je lažno (umorno), tijelo petlje se neće izvršiti. Robot izvršitelj ima nekoliko uvjeta

slobodan odozgo

odozdo slobodno

slobodno otišao

pravo slobodno

gornji zid

donji zid

lijevi zid

desni zid

No, u uvjetu zadatka 19 GIA-a, naznačena su samo prva 4. Stoga ćemo koristiti samo njih.

Sada riješimo sljedeći problem za robota - nacrtajte okomitu liniju od lijeve do desne granice polja pomoću uvjetne petlje. U početku se robot nalazi u gornjem lijevom kutu.

Najprije formulirajmo verbalni algoritam – odnosno opišimo riječima što Robot treba učiniti. Ovaj algoritam će zvučati otprilike ovako:

« Dok ste na desnoj strani, slobodno zakoračite udesno i obojite kavez. »

Kao rezultat toga, robot će proći kroz sve ćelije s desne strane i slikat će ih sve dok se s desne strane ne pojavi zid.

Izvorni kod za naš robotski program bit će otprilike ovako:

koristiti robota

nts dok je na desnoj strani besplatno

nadesno

premazati

Kao rezultat izvršavanja ovog programa, vidjet ćemo sljedeću sliku:

Hirjanov Timofej Fedorovič

Glavne algoritamske konstrukcije, osim elementarnih operacija koje prikazuje jedan element sklopa, su alternativno izvođenje i ciklusi. Postoje dvije opcije za programiranje alternativnog izvršenja i tri su glavne vrste ciklusa.

Uvjetno izvršni kod

Neke operacije mogu biti podložne uvjetni operator... Tada će biti ispunjeni samo ako je ovaj uvjet istinit.

ako<условие>
zatim
<действия>
svi

Alternativa

U dijagramu toka provjera stanja može poslužiti kao smjernica za odabir alternativnih operacija. To jest, ako je uvjet istinit, izvršenje će slijediti jednu putanju, a ako je lažno, onda drugu. U kumirskom jeziku ciklus s preduvjetom ima sljedeći oblik:

ako<условие>
zatim
<действия>
inače
<альтернативные действия>
svi


Uvjeti za robota:
lijevi zid
desni zid
donji zid
gornji zid
ćelija je obojana
slobodno otišao
pravo slobodno
odozdo slobodno
slobodan odozgo
kavez je čist

Petlja s preduvjetom

Petlja s preduvjetom je petlja koja se izvršava sve dok je određeni uvjet naveden prije njegovog početka istinit. Ovaj uvjet se provjerava prije izvršenja tijela petlje, tako da se tijelo ne može izvršiti niti jednom (ako je uvjet netačan od samog početka). U većini proceduralnih programskih jezika implementira se naredbom while, pa otuda i njegov drugi naziv - while-loop. U kumirskom jeziku ciklus s preduvjetom ima sljedeći oblik:

nc zbogom<условие>
<тело цикла>
kts

Petlja s postuvjetom

Petlja s postuvjetom je petlja u kojoj se uvjet provjerava nakon što se izvrši tijelo petlje. Otuda slijedi da se tijelo uvijek izvršava barem jednom. U Pascalu ova petlja implementira operator repeat..until, u C - do ... while.
U kumirskom jeziku petlja s postuvjetom izgleda ovako:

nts
<тело цикла>
kts_with<условие>

Ciklus sa brojačem

Petlja s brojačem je petlja u kojoj varijabla nekim korakom mijenja svoju vrijednost iz zadane početne vrijednosti u konačnu vrijednost, a za svaku vrijednost te varijable tijelo petlje se izvršava jednom. U većini proceduralnih programskih jezika implementira ga operator za, koji označava brojač (tzv. "ciklusna varijabla"), potreban broj prolaza (ili graničnu vrijednost brojača) i, eventualno, korak s kojim se brojač mijenja. Na kumirskom jeziku petlja sa brojačem izgleda ovako:

netaknuta
nts za a od 0 do 9
... tijelo petlje
kts

Različiti programski jezici rješavaju problem vrijednosti varijable na kraju petlje u kojoj je ova varijabla korištena kao brojač na različite načine.

Kartice zadataka

    Pronađite među n cijelih brojeva unesenih s tipkovnice broj negativnih

    Zadana su dva proizvoljna broja. Dok je njihov proizvod manji od 100, povećajte svaki broj za 2 i prikažite konačne brojeve na monitoru

    N-cijeli brojevi se unose uzastopno. Pronađite broj petica u nizu

    N-cijeli brojevi se unose uzastopno. Pronađite razliku između maksimalne i minimalne vrijednosti zadanih brojeva

    Pronađite među n cijelih brojeva unesenih s tipkovnice broj negativnih

    Zadana su dva proizvoljna broja. Dok je njihov proizvod manji od 100, povećajte svaki broj za 2 i prikažite konačne brojeve na monitoru

    N-cijeli brojevi se unose uzastopno. Pronađite broj petica u nizu

    N-cijeli brojevi se unose uzastopno. Pronađite razliku između maksimalne i minimalne vrijednosti zadanih brojeva

    Pronađite među n cijelih brojeva unesenih s tipkovnice broj negativnih

    Zadana su dva proizvoljna broja. Dok je njihov proizvod manji od 100, povećajte svaki broj za 2 i prikažite konačne brojeve na monitoru

    N-cijeli brojevi se unose uzastopno. Pronađite broj petica u nizu

    N-cijeli brojevi se unose uzastopno. Pronađite razliku između maksimalne i minimalne vrijednosti zadanih brojeva

    Pronađite među n cijelih brojeva unesenih s tipkovnice broj negativnih

    Zadana su dva proizvoljna broja. Dok je njihov proizvod manji od 100, povećajte svaki broj za 2 i prikažite konačne brojeve na monitoru

    N-cijeli brojevi se unose uzastopno. Pronađite broj petica u nizu

    N-cijeli brojevi se unose uzastopno. Pronađite razliku između maksimalne i minimalne vrijednosti zadanih brojeva