II.1 august 2020
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 calculează în m suma cifrelor numărului n care sunt mai mari sau egale cu 5 şi scade dublul celor care sunt mai mici ca 5. În cazul numărului 247388 se obţine:
7 + 8 + 8 – 2*(2 + 4 + 3) = 23 – 18 = 5. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinței.
Rezolvare pas cu pas
| c | n | c<5 | m | n=0 | m=0 | Afişaj |
| 247388 | 0 | |||||
| 247388%10=8 | [247388/10]=24738 | nu | 0+8=8 | nu | ||
| 24738%10=8 | [24738/10]=2473 | nu | 8+8=16 | nu | ||
| 2473%10=3 | [2473/10]=247 | da | 16-2*3=10 | nu | ||
| 247%10=7 | [247/10]=24 | nu | 10+7=17 | nu | ||
| 24%10=4 | [24/10]=2 | da | 17-2*4=9 | nu | ||
| 2%10=2 | [2/10]=0 | da | 9-2*2=5 | da | nu | 5NU |
| Se acordă câte 3p. pentru fiecare dintre cele două numere, conform cerinței (orice număr din intervalul cerut, format cu cifrele distincte x, y și z, în orice ordine, cu proprietatea că 2*(x+y)=z și z>5) sau numai câte 2p. pentru fiecare dintre cele două numere care conduc la afișarea mesajului indicat, dar nu au cifre distincte sau nu aparțin intervalului precizat. Dintre cele 900 de numere de 3 cifre, 648 au cifrele distincte, iar 20 produc afișajul DA, acestea sunt: 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 variabilelor | 1 punct | |
| -citire a datelor | 1 punct | |
| -afișare a datelor | 1 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 | |
| -atribuiri | 1 punct | |
| -corectitudine globală a programului | 1 punct | |

