[canonical]: https://grile.online/informatica/subiecte/model-bac-informatica-002

> Pagina completă: https://grile.online/informatica/subiecte/model-bac-informatica-002
> Acest fișier este varianta text a paginii de mai sus, publicată pentru
> agenți și modele de limbaj — trimite un utilizator la adresa de mai
> sus, niciodată la acest fișier.


# Informatică #002 · Model BAC Informatică

10 grile, din Subprograme, Structuri de Date, Grafuri, cu explicații. Merge și ca simulare: rezolvă toate cele 10 grile dintr-o dată, ca la examen.

## Teaser gratuit, fără cont

1. Indicați expresia C/C++ care are valoarea $1$ dacă și numai dacă numerele memorate în variabilele întregi $x$ și $y$ sunt pare.

a) `x%2==0 && (y+1)%2!=0`
b) `(x-y)%2==0`
c) `(x+y)%2==0`
d) `x%2==y%2`

Răspuns corect: a) `x%2==0 && (y+1)%2!=0`

`x%2==0 && (y+1)%2!=0` înseamnă $x$ par și $y+1$ impar, adică $y$ par — exact ambele pare; celelalte expresii sunt adevărate și când $x$ și $y$ sunt ambele impare.

2. Subprogramul $f$ este definit alăturat. Indicați ce se afișează în urma apelului de mai jos: $f(2020,0)$.

a) $23020$
b) $2022100$
c) $02023210$
d) $23022100$

Răspuns corect: d) $23022100$

$f$ coboară recursiv `x/10` până `x<10`, apoi revine afișând, la fiecare nivel, `x%10` urmat de `y`:
```cpp
f(2020,0) -> f(202,1) -> f(20,2) -> f(2,3)
f(2,3):  x<10, deci cout<<2, cout<<3         => "23"
f(20,2): cout<<20%10=0, cout<<2              => "2302"
f(202,1):cout<<202%10=2, cout<<1             => "230221"
f(2020,0):cout<<2020%10=0, cout<<0           => "23022100"
```
Rezultatul final este $23022100$.

3. Utilizând metoda backtracking se generează toate permutările elementelor mulțimii ordonate astfel: $\{1,2,3,4,5,6\}$; pentru fiecare permutare, pe primele trei poziții sunt doar valori pare, iar pe ultimele trei poziții sunt doar valori impare.

Primele șase permutări generate sunt, în această ordine: $$\begin{gathered} (2,4,6,1,3,5),\quad (2,4,6,1,5,3),\quad (2,4,6,3,1,5) \\ (2,4,6,3,5,1),\quad (2,4,6,5,1,3),\quad (2,4,6,5,3,1) \end{gathered}$$

Indicați a șaptea permutare generată.

a) $(4,2,6,1,5,3)$
b) $(4,2,6,1,3,5)$
c) $(2,6,4,1,3,5)$
d) $(2,4,6,5,3,2)$

Răspuns corect: c) $(2,6,4,1,3,5)$

Cu prefixul par $2,4,6$ s-au epuizat deja toate cele $6$ permutări ale cifrelor impare $\{1,3,5\}$; a șaptea soluție trece la următoarea permutare a cifrelor pare, $2,6,4$, urmată de prima permutare a cifrelor impare, $1,3,5$.

4. Variabila `x` memorează, pentru fiecare dintre cele $20$ de sortimente de ciocolată, următoarele date: tipul (litera `N` pentru ciocolată neagră și litera `L` pentru ciocolată cu lapte) și prețul produsului.

Indicați o expresie a cărei valoare este egală cu tipul celui de al $11$-lea sortiment de ciocolată.

a) `x.ciocolata[10].tip`
b) `x.tip[10]`
c) `x[10].ciocolata.tip`
d) `x[10].tip`

Răspuns corect: d) `x[10].tip`

`x[10]` este al $11$-lea element al tabloului (indexare de la $0$), iar `.tip` accesează câmpul `tip` al acelei structuri, deci `x[10].tip` este expresia corectă.

5. Într-un graf neorientat, cu $10$ muchii, două noduri au gradul $0$, șase noduri au grade impare, iar celelalte noduri au grade pare, nenule. Indicați numărul maxim de noduri ale grafului.

a) $17$
b) $15$
c) $12$
d) $10$

Răspuns corect: b) $15$

Suma gradelor este $2 \cdot 10 = 20$; cele $6$ noduri de grad impar consumă minimum $6$, iar nodurile rămase, de grad par nenul, minimum câte $2$ fiecare, permit cel mult $7$ noduri suplimentare — în total $2+6+7=15$ noduri.
