II.1 August 2020 (S.N.)

Subiectul al II-lea

1.Algoritmul alăturat este reprezentat în pseudocod. S-a notat cu a%b restul împărțirii numărului natural a la numărul natural nenul b și cu [c] partea întreagă a numărului real c.
a)Scrieți ce se afișează dacă se citește numărul 247388.                                                                             (6p.)
b)Scrieți două numere din intervalul [102,103), cu cifre distincte, care pot fi citite astfel încât, pentru fiecare dintre acestea, în urma executării algoritmului, să se afișeze DA.                                                          (6p.)
c)Scrieți programul C/C++ corespunzător algoritmului dat.                                                                     (10p.)
d)Scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat structura repetă…până când cu o structură repetitivă cu test inițial.                 (6p.)

Algoritmul adaugă în variabila m, valoarea fiecărei cifre mai mare decât 5, din numărul n, respectiv scade dublul fiecărei cifre care nu depășește valoarea 5.

m = 0 + 8 + 8 – 2* 3 + 7 – 2* 4 – 2* 2 = 5 Se vor acorda câte 3p. pentru precizarea valorii finale a variabilei m și a mesajului NU.

Rezolvare pas cu pas

ncmAfișare
24738880 
2473888 
2473316 
247710 
24417 
229 
0 55NU

Pentru a se afișa mesajul DA valoarea finală a lui m trebuie să fie 0.

Numerele căutate fac parte din intervalul [102, 103), prin urmare pot fi considerate de forma (a b c b), iar o posibilă soluție poate fi:

a 2*b 2*c = 0 (a5; b<5; b<5)  ó a = 2*b+2*c ó a/2 = b+c (a cifră pară). Se vor acorda câte 3p. pentru oricare două soluții din lista următoare de valori: 126, 138, 162, 183, 216, 261, 306, 318, 360, 381, 408, 480, 603, 612, 621, 630, 804, 813, 831, 840.

Pentru program corect se acordă 10 puncte astfel:
-declarare a variabilelor1 punct
-citire a datelor1 punct
-afișare a datelor1 punct
-instrucțiuni de decizie (Se acordă numai 2p. dacă doar una dintre instrucțiunile de decizie este conform cerinței.)3 puncte
-instrucțiune repetitivă2 puncte
-atribuiri1 punct
-corectitudine globală a programului1 punct