Izvršitelj prima urednika. Izvršenje algoritama za formalne izvršitelje (B14)

Performer STROJ “živi” u ograničenom pravokutnom labirintu na kockastoj ravnini, prikazanom na slici. Sive stanice su uspravni zidovi, svijetle stanice su slobodne stanice po kojima se CAR može slobodno kretati. Uz rub polja labirinta nalazi se i podignuti zid na kojem su ispisani brojevi i slova za identifikaciju ćelija u labirintu.

Sustav naredbi izvođača MASHINKA:

Kada se izvrši bilo koja od ovih naredbi, CAR se prema tome pomiče za jednu ćeliju (u odnosu na promatrača): gore, dolje ↓, lijevo ←, desno →. Četiri tima provjeravaju istinitost uvjeta da sa svake strane ćelije u kojoj se nalazi CAR nema zida (također u odnosu na promatrača):

bok< условие >momčad

Kada pokušate prijeći u bilo koju sivu ćeliju, AUTO se razbije o zid.

Koliko ćelija zadanog labirinta ispunjava uvjet da se CAR neće pokvariti nakon pokretanja u njemu i izvođenja dolje predloženog programa?

bok<снизу свободно>dolje

bok<справа свободно>pravo

Otopina.

Počevši se kretati iz bilo koje ćelije stupca A, ćelije B7, B8, C7, C8, automobil će se srušiti slijedeći naredbu s desne strane. Počevši od ćelija B1−B3, automobil će preživjeti. Ako se počnete kretati iz bilo koje ćelije u prva dva retka, počevši od stupca C do stupca I, auto će se srušiti. Počevši od bilo koje ćelije u stupcu J, automobil će se srušiti, izvršavajući naredbu gore. Započinjući kretanje iz bilo koje ćelije stupca K, L, M, N, automobil će se srušiti slijedeći naredbu s desne strane.

Analizirajući “špilju” (dio labirinta u središtu, iz kojeg postoji samo jedan izlaz), dolazimo do zaključka da se automobil neće razbiti ako krene iz kolona D i E, H, I. Svaki od njih ima tri ćelije, au stupcu I - 2. Dakle, odgovor je 3 + 9 + 2 = 14.

Odgovor: 14

bok<условие>momčad

se izvršava sve dok je uvjet istinit, inače se pomiče u sljedeći redak.

bok<сверху свободно>gore

bok<слева свободно>lijevo

Otopina.

Počevši od bilo koje ćelije stupaca A, B, D, I, K, M, N, O i ćelija F1−F2, G1−G2, I2−N2, brod će se srušiti izvršavanjem naredbe gore. Počevši od bilo koje ćelije u stupcu C ćelije E8 i ćelija F4-F8, I4-I8, J4, G4 i H4, brod se neće srušiti. Dakle, broj ćelija od kojih se čamac ne razbija prilikom startanja je 17.

Odgovor: 17

Performer BROD “živi” u ograničenom pravokutnom ribnjaku-labirintu, podijeljenom na ćelije i prikazanom na slici (pogled odozgo). Sive ćelije su stjenovite obale, svijetle su slobodni prostor koji je siguran za kretanje BROD. Uz rub labirintskog jezerca nalaze se i stijene na kojima su označene brojke i slova za lakše prepoznavanje stanica.

Komandni sustav izvođača KORABLIK:

Kada se izvrši bilo koja od ovih naredbi, BROD se prema tome pomiče za jednu ćeliju (u odnosu na promatrača): gore, dolje ↓, lijevo ←, desno →. Četiri tima provjeravaju istinitost uvjeta da ne postoji zid sa svake strane ćelije u kojoj se nalazi BROD (također u odnosu na promatrača):

bok<условие>momčad

se izvršava sve dok je uvjet istinit, inače se pomiče u sljedeći redak. Kada pokušate prijeći u bilo koju sivu ćeliju, BROD se razbije o stijene.

Koliko stanica zadanog labirinta ispunjava uvjet da se BROD neće srušiti nakon pokretanja u njemu i izvođenja dolje predloženog programa?

bok<сверху свободно>gore

bok<слева свободно>lijevo

Otopina.

Učinkovito rješenje je provjera stanica u skupinama. Započinjući kretanje iz bilo koje ćelije stupca A, ćelije B7, B8, brod će se razbiti, izvršavajući naredbu gore. Počevši od bilo koje ćelije prvog reda, brod će se srušiti, izvršavajući naredbu prema gore. Započinjući kretanje iz bilo koje ćelije stupaca C, D, E, G, H, J, K, L, M, I, brod će se srušiti, izvršavajući naredbu prema gore.

Ako se brod krene od ćelije F8, neće se srušiti. Ako se brod krene od ćelija N7, N8, O7, O8, neće se srušiti.

Odgovor: 5

Performer BROD “živi” u ograničenom pravokutnom ribnjaku-labirintu, podijeljenom na ćelije i prikazanom na slici (pogled odozgo). Sive ćelije su stjenovite obale, svijetle su slobodni prostor koji je siguran za kretanje BROD. Uz rub labirintskog jezerca nalaze se i stijene na kojima su označene brojke i slova za lakše prepoznavanje stanica.

Komandni sustav izvođača KORABLIK:

Kada se izvrši bilo koja od ovih naredbi, BROD se prema tome pomiče za jednu ćeliju (u odnosu na promatrača): gore, dolje ↓, lijevo ←, desno →. Četiri tima provjeravaju istinitost uvjeta da ne postoji zid sa svake strane ćelije u kojoj se nalazi BROD (također u odnosu na promatrača):

bok< условие >momčad

se izvršava sve dok je uvjet istinit, inače se pomiče u sljedeći redak.

Kada pokušate prijeći u bilo koju sivu ćeliju, BROD se razbije o stijene.

Koliko stanica zadanog labirinta ispunjava uvjet da se BROD neće srušiti nakon pokretanja u njemu i izvođenja dolje predloženog programa?

bok<сверху свободно>gore

bok<слева свободно>lijevo

Otopina.

Algoritam funkcionira ovako: dok je vrh slobodan, pomiče se prema gore. Kada se odozgo pojavi prepreka, provjerava slobodan prostor s lijeve strane. Ako postoji, onda se pomiče do prepreke s lijeve strane. Zatim poduzima sekvencijalne akcije: jedan korak gore i jedan korak ulijevo.

Učinkovito rješenje je provjera stanica u skupinama. Ako se Brod krene od ćelija H6, I6, D7, D8, neće se srušiti. Nakon što se počne kretati iz bilo koje druge ćelije, brod će se srušiti, slijedeći posljednje dvije naredbe: gore, lijevo.

Odgovor: 4

Performer BROD “živi” u ograničenom pravokutnom ribnjaku-labirintu, podijeljenom na ćelije i prikazanom na slici (pogled odozgo). Sive ćelije su stjenovite obale, svijetle su slobodni prostor koji je siguran za kretanje BROD. Uz rub labirintskog jezerca nalaze se i stijene na kojima su označene brojke i slova za lakše prepoznavanje stanica.

Komandni sustav izvođača KORABLIK:

Kada se izvrši bilo koja od ovih naredbi, BROD se prema tome pomiče za jednu ćeliju (u odnosu na promatrača): gore, dolje ↓, lijevo ←, desno →. Četiri tima provjeravaju istinitost uvjeta nepostojanja zida sa svake strane ćelije u kojoj se nalazi BROD (također u odnosu na promatrača).

Zadatkom se provjerava sposobnost analize algoritma djelovanja formalnog izvođača. Imajte na umu da se radi o cikličkom algoritmu u kojem broj ponavljanja petlje nije unaprijed poznat i ovisit će o vrijednosti varijabli prije početka petlje. U ovom slučaju, može se pretpostaviti da broj ponavljanja petlje može biti prilično velik i da je potpuno formalno izvršenje algoritma neracionalno.

S druge strane, u takvim se algoritmima u pravilu može pronaći obrazac vezan uz činjenicu da određeni broj uzastopnih iteracija petlje transformira objekt na način da se mogu zamijeniti jednom radnjom. Tada se problem svodi na sljedeću metodu rješenja:

  1. Analizirati prvih nekoliko iteracija i odrediti period promjene obrađenog objekta tako da se određeni niz iteracija može zamijeniti jednom radnjom na objektu.
  2. Koristeći dijeljenje s ostatkom, eliminirajte većinu ponavljanja petlje iz razmatranja, ostavljajući samo zadnjih nekoliko ponavljanja.
  3. Formalno izvrši ove posljednje iteracije, čime se utvrđuje vrijednost tražene varijable nakon završetka programa.

Razmotrimo primjenu predložene metode na primjeru zadanog stanja.

  1. Formulirani algoritam implementira obradu niza. Analizirajmo to. Isprva izvođač pokušava pronaći niz brojeva "3333" gledajući liniju s lijeva na desno. Ako takav slijed pronašao, bit će zamijenjen s "88" i obrada će započeti opet. Ako niz "3333" nije pronađeno, ali niz “8888” je pronađen, bit će zamijenjen s “33” i obrada niza će započeti ponovno opet. Ako u retku nema preostalih nizova "3333" ili "8888", tada će program prekinuti. Naglašavamo da će izvođač uvijek prvo potražiti sekvencu “3333”, a ako je pronađe, zamijeniti je sekvencom “88”, a zatim ponovno analizirati niz ispočetka. I samo ako nema niza "3333" u retku, pokušat će pretražiti i zamijeniti niz "8888".
  2. Pogledajmo prvih nekoliko ponavljanja algoritma. Radi praktičnosti, označit ćemo nizove od N uzastopnih znamenki M kao N(M).
    • Izvorni redak može biti označen kao 69(8). Izvođač u njemu neće pronaći niz “3333”, već će pronaći niz “8888” i zamijeniti ga s “33”. Dakle, nakon prve iteracije dobivamo liniju 2(3)65(8).
    • U drugoj iteraciji izvršitelj još uvijek neće pronaći niz “3333”, ali će pronaći niz “8888” koji će također zamijeniti s “33”. Kao rezultat, nakon druge iteracije dobivamo liniju 4(3)61(8).
    • U trećoj iteraciji, izvršitelj će pronaći niz "3333" i zamijeniti ga s "88". Dakle, nakon izvršenja ove iteracije, dobit ćemo liniju 63(8). Imajte na umu da smo kao rezultat tri iteracije ponovno dobili niz koji se sastoji samo od znamenki "8", a njihov se broj smanjio za 6.
  3. Ispada da svaki niz od tri ponavljanja petlje zapravo zamjenjuje prvih 8 znamenki "8" s 2 znamenke "8". Imajte na umu da je ovo gotovo uvijek jednako uklanjanju prvih 6 znamenki iz niza koji se sastoji samo od znamenki "8". Ali treba napomenuti da će to biti točno samo ako postoji najmanje osam znamenki "8" u retku u trenutku brisanja i, sukladno tome, nakon brisanja mogu ostati najmanje dvije znamenke "8".
  4. Podijelimo 69 sa 6 s ostatkom. Dobivamo 11 i 3 kao ostatak. Budući da je ostatak najmanje 2, možemo zaključiti da je u prethodnom koraku postojao niz od najmanje 8 znamenki "8", od kojih je šest uklonjeno. Rezultirajući niz "888" ne sadrži nizove "3333" ili "8888", stoga će petlja obrade završiti i odgovor na posao bit će "888".

Pogledajmo još dva primjera, malo mijenjajući izvorno stanje:

  1. Pretpostavimo da je, prema uvjetima zadatka, program primijenjen na niz koji se sastoji od 67 znamenki "8". Onda ako podijelite 67 sa 6 s ostatkom, dobit ćete 11 i 1 u ostatku. Ostatak je manji od 2, ali se jednoznamenkasti niz "8" ne može dobiti. Stoga, trebamo smatrati 67 kao 10*6+7. Zatim je u sljedećoj iteraciji petlje dobiven niz 8888888, odnosno niz koji se sastoji od sedam znamenki “8”. Njegova daljnja transformacija izgledat će ovako: 8888888 → 33888. A odgovor na ovu formulaciju zadatka bit će "33888".
  2. Pretpostavimo da je, prema uvjetima zadatka, program primijenjen na niz koji se sastoji od 66 znamenki 8. Ostatak pri dijeljenju 66 sa 6 je nula. Imajte na umu da je 66=6*10+6. To znači da bi se nakon 10 brisanja trebao dobiti niz 888888 koji će se nakon sljedeće iteracije petlje pretvoriti: 888888 → 3388. Daljnja konverzija je nemoguća i program će završiti. Stoga će odgovor na ovu formulaciju zadatka biti "3388".

Ovaj zadatak uglavnom koristi opis algoritama u pseudokodu (uvjetni algoritamski jezik koji uključuje elemente programskog jezika i elemente običnog prirodnog jezika).

Glavne konstrukcije pseudokoda opisane su prije teksta problema.

Umjetnik crtač

Primjer 1.

Izvođač Crtač se kreće po koordinatnoj ravnini ostavljajući trag u obliku linije. Crtač može izvršiti naredbu prebaciti na (a, b), Gdje a, b– cijeli brojevi. Ova naredba pomiče crtača s koordinata ( x, g) do točke s koordinatama ( x + a; g + b).

Na primjer, ako je crtač u točki s koordinatama (4, 2), tada naredba prebaciti na(2, -3) će pomaknuti crtača do točke (6, -1).

PONOVI nekoliko puta

KRAJ PONAVLJANJE

znači da slijed naredbi navedeno će se provesti broj puta (broj mora biti prirodan broj).

Crtaču je dan sljedeći algoritam za izvršenje (slova n, a, b navedeni su nepoznati brojevi, n>1):

START

pomakni za (60, 100)

PONOVITI n JEDNOM

pomakni za ( a, b)

prijeđi na (33, 44)

KRAJ PONAVLJANJE

pomakni za (13, 200)

pomakni za (-1, 60)

Unesite najveću moguću vrijednost broja n, za koje postoje takve vrijednosti brojeva a I b da će se nakon izvršenja programa Draftsman vratiti na početnu točku.

Otopina:

Kao rezultat izvršavanja algoritma, crtač će se pomaknuti

duž x osi na:

60 + n*a + n*33 + 13 – 1

duž y osi na:

100 + n*b + n*44 + 200 + 60

Poznato je da se uslijed kretanja Crtač vratio na početnu točku, tj. pomak po osi x je nula, a pomak po osi y je nula:

60 + n*a + n*33 + 13 – 1 = 0

100 + n*b + n*44 + 200 + 60 = 0

n*(a + 33) = -72

n*(b + 44) = -360

Najveći n je najveći zajednički djelitelj brojeva -72 i -360. Ovaj broj je 72.

Odgovor: 72

Robot izvođač

Primjer 2.

Sustav naredbi ROBOTA izvođača koji "živi" u pravokutnom labirintu na kockastoj ravnini:

Prilikom izvršavanja bilo koje od ovih naredbi, ROBOT se prema tome pomiče za jednu ćeliju (u odnosu na promatrača): gore, dolje ↓, lijevo ←, desno →.

Četiri tima provjeravaju istinitost uvjeta da nema zida sa svake strane ćelije u kojoj se nalazi ROBOT (također u odnosu na promatrača):

bok< усло­вие >

slijed naredbi

KRAJ ZBOGOM

U dizajnu

AKO< усло­вие >

TO tim1

ILSE naredba2

KRAJ AKO

izvršava se naredba1 (ako je uvjet istinit) ili naredba2 (ako je uvjet lažan)

Ako se ROBOT krene prema zidu pored sebe, srušit će se i program će biti prekinut.

Koliko stanica labirinta ispunjava uvjet da ROBOT, nakon što se u njemu krene i slijedi predloženi program, preživi i zaustavi se u zasjenjenoj ćeliji (ćelija F6)?

START

bok slobodan odozdo ILI slobodno na desnoj strani bok slobodno na desnoj strani

pravo

KRAJ ZBOGOM

dolje

KRAJ ZBOGOM

Otopina:

U ovom programu ROBOT prvo provjerava je li ćelija desno ili ispod njega slobodna. Ako je tako, tada ROBOT nastavlja s prvom radnjom unutar petlje. U ovom ciklusu, sve dok na desnoj strani ćelije u kojoj se nalazi ROBOT nema zida, on se nastavlja kretati udesno. Čim ovaj uvjet više nije ispunjen, prelazi se na drugu radnju unutar petlje. Druga radnja je sljedeća: ROBOT se pomiče jednu ćeliju prema dolje. Zatim se vraća na početak vanjske petlje.

Provjerivši redom sve ćelije prema pravilu kretanja ROBOTA, saznajemo da je broj ćelija koje zadovoljavaju uvjete zadatka 15 (cijeli prvi redak, cijeli stupac F, ćelije D2, E2, D4, D6, E4).


Točan odgovor je naveden pod brojem 3.

Odgovor: 3

Urednik umjetnika

Primjer 3.

Executor Editor prima niz brojeva kao ulaz i pretvara ga. Editor može izvršiti dvije naredbe, u obje naredbe v i w predstavljaju nizove brojeva.

A) zamijeniti(v, w).

Ova naredba zamjenjuje prvo lijevo pojavljivanje niza v nizom w. Na primjer, izvođenje naredbe zamijeniti(111, 27) pretvara niz 05111150 u niz 0527150. Ako niz nema pojavljivanja v, tada izvršavanje naredbe replace (v, w) ne mijenja taj niz.

B) pronašao(v).

Ova naredba provjerava da li se string v pojavljuje u izvršiteljskom retku Editor. Ako se naiđe na njega, naredba vraća booleovu vrijednost "true", inače vraća vrijednost "false". Linija izvršitelja se ne mijenja.

BOJE stanje

slijed naredbi

KRAJ ZBOGOM

se izvršava sve dok je uvjet istinit.

U dizajnu

IF stanje

TO tim1

ILSE naredba2

KRAJ AKO

izvršava se naredba1 (ako je uvjet istinit) ili naredba2 (ako je uvjet lažan).

Koji će niz biti proizveden primjenom sljedećeg programa na niz koji se sastoji od 68 uzastopnih osmica? Zapišite rezultirajući niz u svom odgovoru.

START

DO SADA pronađeno (222) ILI pronađeno (888)

AKO se pronađe (222)

ZA zamjenu (222, 8)

INAČE zamijeni (888, 2)

KRAJ AKO

KRAJ ZBOGOM

KRAJ

Otopina:

Označimo niz od 68 osmica - 68"8",

niz dvojki i 65 osmica - 1"2"65"8" itd.

Prođimo kroz prva 4 ciklusa programa:

68"8" → 1"2"65"8" → 2"2"62"8" → 3"2"59"8" → 60"8"

Kao rezultat toga, broj osmica smanjio se za 8. Nije teško shvatiti da će se linija smanjiti za 8 osmica svake 4 iteracije. Rezultat će biti niz od 4 osmice. Zaokružimo program:

…→ 4"8" → 1"2"1"8" = 28

Odgovor: 28

Kornjača izvođačica

Primjer 4.

Izvođač Kornjača se kreće po ekranu računala ostavljajući trag u obliku crte. U svakom određenom trenutku poznat je položaj izvođača i smjer njegova kretanja. Izvođač ima dvije naredbe:

Naprijed n, Gdje n– cijeli broj koji uzrokuje pomicanje kornjače n koraka u smjeru kretanja.

Desno m, Gdje m– cijeli broj koji uzrokuje promjenu smjera kretanja za m stupnjeva u smjeru kazaljke na satu.

Snimiti Ponovi 5 [Tim1 Tim2] znači da će se niz naredbi u zagradama ponoviti 5 puta.

Kornjača je dobila sljedeći algoritam za izvršavanje:

Koji će se oblik pojaviti na ekranu?

Otopina:

Redoslijed radnji Naprijed 40 Desno 90 crta segment dužine 40 koraka i zatim mijenja smjer za 90 stupnjeva u smjeru kazaljke na satu. Zatim slijed Ponovi 4 [Naprijed 40 Desno 90] nacrtat će kvadrat, a smjer će se vratiti na izvorni.

Zatim se naredba izvršava Desno 120, promijenit će smjer za 120 stupnjeva od izvornog.

Ako sve gore navedene korake ponovite 5 puta:

Ponovi 5 [Ponovi 4 [Naprijed 40 desno 90] desno 120], tada će kvadrat biti nacrtan 5 puta. Štoviše, svaki sljedeći je rotiran oko vrha u odnosu na prethodni za 120 stupnjeva. Nije teško primijetiti da će 4. kvadrat biti nacrtan na vrhu prvog (120 * 3 = 360, rotiran cijeli krug, vraćen u prvobitni položaj), a 5. na vrhu drugog.

Rezultat je prikazan pod brojem 3.

Odgovor: 3

Za ovaj zadatak možete dobiti 1 bod na Jedinstvenom državnom ispitu 2020

„Izvršenje algoritama za Robot izvođača“ je tema zadatka 14 Jedinstvenog državnog ispita iz računarstva. Neke od njegovih varijanti uključuju izvođača Draftsmana, a uvjet zadatka u ovom slučaju može zvučati ovako: „Crtač se pomiče po koordinatnoj ravnini pomoću naredbe „Premjesti na (a, b)“, pomičući se iz točke (x,y) do točke (x+ a, y+b). Crtač dva puta ponavlja algoritam “Naredba Z - Pomakni na (3, 2) - Pomakni na (2, 1)” nakon čega slijedi naredba “Pomakni na (-6, -4)” i vraća se na početnu točku . Na koju se naredbu misli u uvjetu tima Z?

Ostale verzije zadatka 14 Jedinstvenog državnog ispita iz računarstva posvećene su petljama s operatorima "while" i "if", kao i nestandardnim algoritmima. Evo primjera „nestandardnog“ zadatka: „U gusarovim bilješkama lovac na blago pročitao je sljedeće upute za pronalaženje skrivenog blaga: „60 koraka prema jugu, 30 koraka prema istoku, 30 koraka prema sjeveru i 60 koraka prema jugu” i pronašao kartu otoka na kojoj su označena slobodna i neprohodna područja terena. Odredite na kojoj bi se točki na karti blago trebalo nalaziti ako na dijagramu nije naznačeno mjesto na kojem bi lovac na blago trebao stajati prije nego što počne s izvođenjem navedenog niza radnji.

Što je izvođač? SKI izvođač
Pravila za izvršavanje linearnih, granajućih i cikličkih algoritama.
Pravila za snimanje programa na školskom algoritamskom jeziku.
Osnovne operacije s nizovima znakova.

Urednik umjetnika

Primjer 1.

Uređivač prima niz brojeva kao ulaz i pretvara ga. Uređivač može izvršiti dvije naredbe:
1. zamijeniti (v,w)- ova naredba zamjenjuje prvo lijevo pojavljivanje niza u retku v na lancu w
2. pronađeno (v)- ova naredba provjerava postoji li lanac v u uređivaču umjetničke linije. Ako se naiđe na njega, naredba vraća booleovu vrijednost "true", inače vraća vrijednost "false". Linija se ne mijenja.
Program za izvođača Editor je dan:
POČNI DOK je pronađeno (222) ILI pronađeno (555) AKO je pronađeno (222) ONDA zamijeni (222, 5) INAČE zamijeni (555, 2) KRAJ AKO KRAJ ZBOGOM KRAJ
Što će se dogoditi kao rezultat izvršavanja ovog programa ako je ulaz niz koji se sastoji od:
A) 247 uzastopnih znamenki 5?
B) 247 uzastopnih znamenki 2?
Zapišite rezultirajući niz u svom odgovoru.

Otopina:

Razmotrimo algoritam rješenja za točku A. Zadan je niz od 247 pentada.

  1. U početku, budući da u nizu nema tri "2", prema algoritmu, prve tri "5" zamjenjuju se jednom "2". Ispada jedna "2" i dvjesto četrdeset četiri "5". Budući da tri "2" još nisu prikupljena, dolazi do sljedeće zamjene tri "5" s "2". A sada postoje dvije "2" i dvjesto četrdeset jedna "5". I dalje nema tri “dvojke”, pa su opet sljedeće tri “5” zamijenjene s “2”, a sada imamo tri “dvojke” i dvjesto trideset osam “5”. Budući da su se pojavile tri “2”, one su zamijenjene jednom “5”.
  2. Zatim se operacije ponavljaju. Tako se devet petica zamjenjuje jednom peticom, odnosno možemo reći da se kod svakog ponavljanja gore opisanih radnji osam petica precrtava.
  3. Pronađimo koliko je "5" ostalo neprecrtanih. Da bismo to učinili, izračunajmo cjelobrojni ostatak dijeljenjem 247 (broj "5" prema uvjetima na početku) s 8. To je 7. To jest, ostaje sedam "5": 5555555.
  4. Zamijenimo sada prve tri "5" s dvojkom, dobit ćemo 25555. Zatim ćemo ponovno zamijeniti tri "5" s "2", i na kraju odgovor: 225.

Sada razmotrite rješenje točke B. Dan je niz od 247 dvojki.

  1. Prve tri "2" zamijenjene su s "5", zatim sljedeće tri "2" zamijenjene su s "5", a sljedeće tri "2" zamijenjene su s "5".
  2. Unatoč činjenici da su upisane tri "5", tri "5" nisu zamijenjene s "2", budući da se grana "Else" izvršava samo ako grana "To" nije obrađena. A budući da slijedi niz "2", u kojem je broj "2" veći od dva, sljedeća tri uzastopna "2" zamjenjuju se s "5", i tako dalje.
  3. Izbrojimo koliko će se puta tri "2" zamijeniti s "5". Izračunajmo cjelobrojni dio dijeljenja 247 s 3. Ovo je 82. To jest, niz će imati osamdeset i dvije “5” i preostalu jednu “2” (cjelobrojni ostatak dijeljenja 247 s 3).
  4. Sada primijenimo algoritam opisan u odlomku A na niz “5”. Nađimo cijeli broj ostataka od dijeljenja 82 s 8. To će biti 2, odnosno ostat će dva “5” i plus još jedan dobiven “2”. ranije. Imamo niz “552”. Odgovor: 552.

Primjer 2

Izvođač Crtač se kreće po koordinatnoj ravnini ostavljajući trag u obliku linije. Crtač može izvršiti naredbu Premjesti na (a, b)(gdje su a, b cijeli brojevi), pomicanje crtača od točke s koordinatama (x, y) do točke s koordinatama (x + a, y + b). Ako su brojevi a, b pozitivni, vrijednost odgovarajuće koordinate raste, ako su negativni, smanjuje se.
Na primjer, ako je crtač u točki s koordinatama (2, 4), tada naredba Pomakni za (1, –5) pomaknut će crtača na točku (3, –1).
Crtaču je dan sljedeći algoritam za izvršenje: Pomakni na (3,-3) Ponovi N puta Pomakni na (27, 17) Pomakni na (a, b) kraj Pomakni na (–27, –17)

Koliko mora biti jednako N da bi se crtač mogao vratiti na početnu točku s koje je krenuo?

Otopina:

Izračunajmo konačni pomak crtača (ukupna promjena svake koordinate treba biti jednaka 0):

(3, -3)

N puta (27+a, 17+b)

(-27, 17)

ukupna promjena x-koordinate:

3+ N (27+ a )-27 = 0

ukupna promjena y-koordinate:

3+ N (17+ b )-17 = 0

2) pojednostavimo obje jednadžbe:

N(27+a) = 24

N (17+ b ) = 20

3) dakle, N je zajednički djelitelj brojeva 24 i 20, može biti 2 ili 4; Od ponuđenih odgovora u zadatku samo su 4 prikladna (odgovor 1)

4) Odgovor: 1.