II.1 simulare 2019 (M.I)

Subiectul al III-lea – Exerciţiul 2

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 valoarea afisată dacă se citesc, în această ordine, numerele 5, 19 și 4.  (6p.)
b)Dacă pentru variabila b se citeşte numărul 2019, iar pentru variabila k se citeşte numărul 5, scrieţi cea mai mică şi cea mai mare valoare care pot fi citite pentru variabila a astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, valoarea afişată să fie 0.                                                           (6p.)
c)Scrieți programul C/C++ corespunzător algoritmului dat.                               (10p.)
d)Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind prima structură cât timp…execută cu o structură de tip pentru…execută.                                                                               (6p.)

Algoritmul determină cea mai mare valoare naturală din intervalul [a, b] care admite ca divizor cea mai mică putere nenulă a lui k. Dacă nu există un asemenea număr, se va afișa valoarea de start a variabilei y, respectiv valoarea 0. Pentru precizarea valorii 12 se acordă 6p.

Rezolvare pas cu pas

abkixppmyAfișare
51941919000 
   18180   
   17170   
   16160   
    41   
    12216 
   15150   
   14140   
   13130   
   12120   
    31112 
   11110   
   10100   
   990   
   880   
    21   
   770   
   660   
   550  12

Valorile căutate nu trebuie să fie multiplu de k, iar cum ab, cea mai mare valoare pentru a este 2019, iar cea mai mică este 2016. Orice valoare mai mică decât 2016 determină trecerea prin cel puțin un multiplu de 5 și ar duce la modifcarea valorii de start a variabilei p. Se acordă câte 3p. pentru fiecare din cele două valori precizate mai sus.

Pentru program corect se acordă 10 puncte astfel:
-declarare variabile1 punct
-citire date1 punct
-afişare date1 punct
-instrucţiune de decizie (Se acordă numai 1p. dacă instrucțiunea de decizie este principial corectă, dar expresia evaluată nu este conform cerinței.)2 puncte
-instrucţiuni repetitive (Se acordă numai 2p. dacă numai una dintre instrucțiunile repetitive este conform cerinței.)3 puncte
-atribuiri1 punct
-corectitudine globală a programului1 punct