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
| n | c | m | Afișare |
| 247388 | 8 | 0 | |
| 24738 | 8 | 8 | |
| 2473 | 3 | 16 | |
| 247 | 7 | 10 | |
| 24 | 4 | 17 | |
| 2 | 2 | 9 | |
| 0 | 5 | 5NU |
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 (a≥5; 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 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 | |

