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
| m | n | p | q | s1 | s2 | p≤q | p%m=0 sau p%n=0 | p%m=0 și p%n=0 | s |
| 4 | 3 | 11 | 25 | 0 | 0 | da | nu | nu | |
| 12 | 1 | 1 | da | da | da | ||||
| 13 | da | nu | nu | ||||||
| 14 | da | nu | nu | ||||||
| 15 | 2 | da | da | nu | |||||
| 16 | 3 | da | da | nu | |||||
| 17 | da | nu | nu | ||||||
| 18 | 4 | da | da | nu | |||||
| 19 | da | nu | nu | ||||||
| 20 | 5 | da | da | nu | |||||
| 21 | 6 | da | da | nu | |||||
| 22 | da | nu | nu | ||||||
| 23 | da | nu | nu | ||||||
| 24 | 7 | 2 | da | da | da | ||||
| 25 | da | da | nu | 7-2*2=3 |

| Pentru program corect se acordă 10 puncte astfel: | |
| -declarare variabile | 1 punct |
| -citire date | 1 punct |
| -afişare date | 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 |

