II.1 iulie 2019 (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ă dacă se citesc, în această ordine, numerele 4, 3, 11 și 25.                                                                           (6p.)
b)Dacă pentru m, n și p se citesc numerele 3, 5, respectiv 1, scrieţi două numere care pot fi citite pentru q astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, valoarea afişată să fie 10.                                                                    (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 parcurge valorile naturale din intervalul [p, q] și determină incrementarea valorii variabilei s1 la întâlnirea unui număr multiplu de p sau de q, respectiv valorii variabilei lui s2 dacă numărul este în același timp multiplu de p și de q. Pentru precizarea valorii 3 se acordă 6 puncte.

Rezolvare pas cu pas

mnpqs1s2p≤qp%m=0 sau p%n=0p%m=0 și p%n=0s
43112500danunu 
  12 11dadada 
  13   danunu 
  14   danunu 
  15 2 dadanu 
  16 3 dadanu 
  17   danunu 
  18 4 dadanu 
  19   danunu 
  20 5 dadanu 
  21 6 dadanu 
  22   danunu 
  23   danunu 
  24 72dadada 
  25   dadanu7-2*2=3
Pentru program corect se acordă 10 puncte astfel:
-declarare variabile1 punct
-citire date1 punct
-afişare date1 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