II.1 Model 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.
a)Scrieți valoarea afișată în urma executării algoritmului dacă se citesc, în această ordine, numerele 21, 38 și 4. (6p.)
b)Dacă pentru m şi x se citesc numerele 20, respectiv 2020, scrieți cea mai mică şi cea mai mare valoare care pot fi citite pentru variabila n, astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea să se afişeze 2020.                                                      (6p.)
c)Scrieți programul C/C++ corespunzător algoritmului dat.                                                                       (10p.)
d)Scrieți în pseudocod un algoritm, echivalent cu cel dat, înlocuind structura repetă…până când cu o structură de alt tip.                                                                 (6p.)

Algoritmul calculează în variabila s, suma valorilor multiplu de x întâlnite în intervalul [m, n]. Pentru precizarea valorii 120 se acordă 6p.

Rezolvare pas cu pas

mnxspmpnAfișare
21384011 
2237     
2336 36 4 
2432 604  
2828 92 4 
3224 1204 120

Valoarea cea mai mică pe care o poate lua variabila n este 2020. Orice număr natural nenul mai mic decât această valoare, ar duce la oprirea algoritmului în momentul în care valoarea lui m depășește valoarea lui n, fără ca valoarea inițială a lui s să fie modificată.

Cea mai mare valoare este 4039 pentru că orice alt număr mai mare decât aceasta, ar adăuga la s cel puțin valoarea 4040. Se acordă câte 3p. pentru fiecare din cele douâ valori 2020, respective 4039.

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