Simulare Bacalaureat Informatica 2025 SUBIECTUL I

  1. Indicați valoarea expresiei C/C++ alăturate. 20.25/2.5*100

Pasul 1: Împărțirea

20.25÷2.5=8.120.25 \div 2.5 = 8.120.25÷2.5=8.1

Pasul 2: Înmulțirea

8.1×100=8108.1 \times 100 = 8108.1×100=810

Rezultat final:

810

  1. Subprogramul f este definit alăturat.
    Indicați apelul în urma căruia se obține valoarea 2025.

int f(int x)
{ if(x>500) return 5;
else return 5*f(x*10+5)+x;
}

Pasul 1: Analiza funcției

Funcția f(x) se comportă astfel:

  1. Dacă x > 500, returnează 5.
  2. Dacă x ≤ 500, recursiv apelează f(x * 10 + 5) și efectuează operația:

f(x)=5×f(x×10+5)+x

    Să calculăm valoarea pentru fiecare dintre apelurile f(5), f(2), f(1), f(0)

    1. Calcul pentru f(5)

    f(5)=5×f(55)+5f(5) = 5 \times f(55) + 5f(5)=5×f(55)+5 f(55)=5×f(555)+55f(55) = 5 \times f(555) + 55f(55)=5×f(555)+55 f(555)=5f(555) = 5f(555)=5

    Înlocuim:

    • f(555) = 5
    • f(55) = 5 × 5 + 55 = 25 + 55 = 80
    • f(5) = 5 × 80 + 5 = 400 + 5 = 405

    ✅ f(5) = 405


    2. Calcul pentru f(2)

    f(2)=5×f(25)+2f(2) = 5 \times f(25) + 2f(2)=5×f(25)+2 f(25)=5×f(255)+25f(25) = 5 \times f(255) + 25f(25)=5×f(255)+25 f(255)=5×f(2555)+255f(255) = 5 \times f(2555) + 255f(255)=5×f(2555)+255 f(2555)=5f(2555) = 5f(2555)=5

    Înlocuim:

    • f(2555) = 5
    • f(255) = 5 × 5 + 255 = 25 + 255 = 280
    • f(25) = 5 × 280 + 25 = 1400 + 25 = 1425
    • f(2) = 5 × 1425 + 2 = 7125 + 2 = 7127

    ✅ f(2) = 7127


    3. Calcul pentru f(1)

    f(1)=5×f(15)+1f(1) = 5 \times f(15) + 1f(1)=5×f(15)+1 f(15)=5×f(155)+15f(15) = 5 \times f(155) + 15f(15)=5×f(155)+15 f(155)=5×f(1555)+155f(155) = 5 \times f(1555) + 155f(155)=5×f(1555)+155 f(1555)=5f(1555) = 5f(1555)=5

    Înlocuim:

    • f(1555) = 5
    • f(155) = 5 × 5 + 155 = 25 + 155 = 180
    • f(15) = 5 × 180 + 15 = 900 + 15 = 915
    • f(1) = 5 × 915 + 1 = 4575 + 1 = 4576

    ✅ f(1) = 4576


    4. Calcul pentru f(0)

    f(0)=5×f(5)+0f(0) = 5 \times f(5) + 0f(0)=5×f(5)+0

    • f(5) = 405 (calculat anterior)
    • f(0) = 5 × 405 + 0 = 2025

    ✅ f(0) = 2025


    Răspuns final

    Dintre opțiunile f(5), f(2), f(1), f(0), valoarea 2025 este obținută pentru f(0).

    Răspuns corect: f(0)

    3. Variabila m memorează elementele unui tablou bidimensional cu 2025 de linii și 2025 de coloane, numerotate de la 0 la 2024. Indicați expresia C/C++ prin care poate fi accesat un element aflat pe diagonala secundară a tabloului.
    a. m[1999][25]
    b. m[52:1999]
    c. m[25][52]
    d. m[25:1999]

    Într-un tablou bidimensional m de dimensiune 2025 x 2025, diagonala secundară conține elementele pentru care indicele de linie + indicele de coloană este egal cu 2024 (adică i + j = 2024).


    Verificarea opțiunilor:

    1. Opțiunea a: m[1999][25]
      • Verificare: 1999+25=20241999 + 25 = 20241999+25=2024
      • Această expresie este corectă!
    2. Opțiunea b: m[52:1999]
      • Probleme:
        • Nu este o sintaxă validă în C/C++.
        • Doi indici separați de : sugerează un interval (folosit în Python, dar nu în C/C++).
      • Expresia este incorectă.
    3. Opțiunea c: m[25][52]
      • Verificare: 25+52=77≠202425 + 52 = 77 \neq 202425+52=77=2024
      • Expresia este incorectă.
    4. Opțiunea d: m[25:1999]
      • Probleme:
        • La fel ca în opțiunea b, : nu este valid în C/C++.
      • Expresia este incorectă.

    Răspuns final:

    Răspuns corect: m[1999][25] (opțiunea a)

    1. Un arbore cu 11 noduri, numerotate de la 1 la 11, este reprezentat prin vectorul de „tați”
      (4,3,7,6,7,8,6,0,7,7,7). Indicați numărul maxim de descendenți direcți (“fii”) ai unui nod.
      a. 6
      b. 5
      c. 4
      d. 3

    Vectorul de „tați” al arborelui este: (4,3,7,6,7,8,6,0,7,7,7)(4,3,7,6,7,8,6,0,7,7,7)(4,3,7,6,7,8,6,0,7,7,7)

    Acest vector indică faptul că nodul de pe poziția i are ca părinte valoarea de pe poziția i din vector.


    1. Identificăm descendenții direcți (“fii”) pentru fiecare nod:

    • Nodul 1 are părintele 4 → 4 are un fiu: {1}
    • Nodul 2 are părintele 3 → 3 are un fiu: {2}
    • Nodul 3 are părintele 7 → 7 are un fiu: {3}
    • Nodul 4 are părintele 6 → 6 are un fiu: {4}
    • Nodul 5 are părintele 7 → 7 are un fiu: {3, 5}
    • Nodul 6 are părintele 8 → 8 are un fiu: {6}
    • Nodul 7 are părintele 6 → 6 are un fiu: {4, 7}
    • Nodul 8 are părintele 0 (rădăcina)
    • Nodul 9 are părintele 7 → 7 are un fiu: {3, 5, 9}
    • Nodul 10 are părintele 7 → 7 are un fiu: {3, 5, 9, 10}
    • Nodul 11 are părintele 7 → 7 are un fiu: {3, 5, 9, 10, 11}

    2. Determinăm nodul cu cei mai mulți fii:

    • Nodul 7 are 6 fii: {3, 5, 9, 10, 11, 2}.

    Răspuns final:

    Răspuns corect: 6 (opțiunea a)

    1. Un graf neorientat are 25 de noduri și 5 componente conexe, fiecare dintre acestea fiind fără cicluri.
      Indicați numărul de muchii ale grafului.
      a. 20
      b. 21
      c. 24
      d. 30

    Analiza problemei

    • Graful are 25 de noduri și 5 componente conexe.
    • Fiecare componentă conexă este fără cicluri, ceea ce înseamnă că este un arbore.
    • Un arbore cu nnn noduri are exact n−1n – 1n−1 muchii.

    Determinarea numărului total de muchii

    Fie n1,n2,…,n5n_1, n_2, …, n_5n1​,n2​,…,n5​ numărul de noduri în fiecare dintre cele 5 componente.

    Fiecare componentă având nin_ini​ noduri, are ni−1n_i – 1ni​−1 muchii.

    Totalul nodurilor este: n1+n2+n3+n4+n5=25n_1 + n_2 + n_3 + n_4 + n_5 = 25n1​+n2​+n3​+n4​+n5​=25

    Totalul muchiilor este: (n1−1)+(n2−1)+(n3−1)+(n4−1)+(n5−1)(n_1 – 1) + (n_2 – 1) + (n_3 – 1) + (n_4 – 1) + (n_5 – 1)(n1​−1)+(n2​−1)+(n3​−1)+(n4​−1)+(n5​−1) =(n1+n2+n3+n4+n5)−5= (n_1 + n_2 + n_3 + n_4 + n_5) – 5=(n1​+n2​+n3​+n4​+n5​)−5 =25−5=20= 25 – 5 = 20=25−5=20


    Răspuns final

    Răspuns corect: 20 (opțiunea a)