👤

Se consideră algoritmul alăturat, reprezentat în pseudocod. S-a notat cu a%b restul împărţirii numărului natural a la numărul natural nenul b.
m<--0
repeta
| citeste x (numar natural)
| y<--x
| repeta
| | c<--y%10
| | y<--[y/10]
| --pana cand c<=y%10
| daca y!=0
| | m<--m*10+c
| --
-----pana cand x=0
scrie m

a)Valoare afisata daca se citesc in aceasta ordine: 29678, 125, 1233345, 2, 78664, 0.
b)Scrieti un sir de date astfel incat sa se afiseze 2016


Răspuns :

Programul compara ultima cifra din fiecare numar cu cea de dinaintea sa. Daca este mai mica decat cea anterioara, atunci ne oprim si intram in if() si formam un numar nou cu prima cea mai mica sau egala cifra fata de cea de dinainte, din fiecare numar citit.

Vezi imaginea COSMAANDRA2000

Răspuns:

a) 634

b)6655432, 100, 741, 123667, 0

Explicație:

a)

Algoritmul construieste in m un numar cu cifra c de la fiecare numar, care se obtine astfel:

La fiecare numar, cautam o pereche de cifre alaturate, cu a 2-a mai mica sau egala cu prima. Cifra c este a 2-a din prima pereche gasita(de la sfarsitul numarului).

29678 -> pereche = 96 -> cifra c este 6 -> m = 6

125 -> cifrele sunt crescatoare -> nu exista o pereche care respecta conditia-> y va avea valoarea 0 -> nu se adauga la m

1233345 -> pereche = 33 -> cifra c este 3 -> m = 63

2 -> avem o singura cifra, deci y va avea valoarea 0 -> nu se adauga la m

78664 -> pereche = 64 -> cifra c este 4 -> m = 634

0 -> se termina executia

Si valoarea lui m in final este 634

b)

2016

2 = prima cifra, luata din primul numar.

Un numar pentru care cifra c = 2 este 6655432

0 = a 2-a cifra, luata din al 2-lea numar.

Un numar pentru care cifra c = 0 este 100

1 = a 3-a cifra, luata din al 3-lea numar.

Un numar pentru care cifra c = 1 este 741

6 = a 4-a cifra, luata din al 4-lea numar:

Un numar pentru care cifra c = 6 este 123667

In final avem nevoie de 0 pentru a termina executia:

0

Sirul format este:

6655432, 100, 741, 123667, 0

(la acest sir se mai pot adauga termeni care au toate cifrele in ordine crescatoare, nu modifica rezultatul)