Un proiect editorial realizat de
PortalInvatamant.ro

Subiecte [REZOLVATE] BAC 2025 Informatica - Limbaj C++

▶ Subiecte [REZOLVATE] BAC Informatica - Limbaj C++ 
▶ Rezolvari Subiecte BAC Informatica - Limbaj C++ 

Subiecte [REZOLVATE] BAC 2025 Informatica - Limbaj C++ 

SUBIECTUL I (20 de puncte)  

Pentru fiecare dintre itemii de la 1 la 5, scrieti pe foaia de examen litera corespunzatoare raspunsului corect. Fiecare raspuns corect se noteaza cu 4 puncte.  

1. Indicati o expresie C/C++ care are valoarea 1 daca si numai daca valoarea variabilei x nu este din intervalul inchis [2020, 2023]. 
a) (x<=2020) && (x>2023)
b) (x>=2020) || (x<=2023)
c) (x<2020) || (x>2023)
d) (x<2020) && (x>2023)

2. Subprogramul f este definit mai jos.  

Ce valoare va avea f(2022, 2024)?
a) 2022
b) 2023
c) 2024
d) 2025 

3. Un gospodar a cumparat urmatoarele soiuri de pomi fructiferi {cires, gutui, mar, par, prun}, cate un pom din fiecare soi. El se gandeste sa planteze pomii pe un rand in livada. Avand in vedere ca primele patru optiuni sunt in aceasta ordine: {cires, gutui, mar, par, prun}, {cires, gutui, mar, prun, par}, {cires, gutui, par, mar, prun}, {cires, gutui, par, prun, mar}, care este a cincea optiune pentru plantarea pomilor fructiferi? 
 

Modelul de subiect prezentat este extras din lucrarea INFORMATICA. Limbaj C++. Teste rezolvate pentru reusita la examenul de Bacalaureat. Specializarea Matematica-Informatica. Descoperiti modelele de teste care ii ajuta pe elevi sa obtina  NOTA 10 la examenul de Bacalaureat 


a) {cires, gutui, mar, prun, par}
b) {cires, mar, prun, par, gutui}
c) {cires, gutui, prun, mar, par}
d) {gutui, prun, par, mar, cires} 

4. Un arbore cu radacina are 8 noduri, numerotate de la 1 la 8, si este reprezentat prin vectorul de „tati” (0,1,2,2,1,5,5,7). Indicati frunzele arborelui.
a) 2,3,4
b) 3,4,5,6
c) 3,4,6,8
d) 3,4,6,7  

5. Un graf orientat cu 5 noduri este reprezentat prin matricea de adiacenta de mai jos. Indicati numarul de arce. 

a) 8 b) 4 c) 6 d) 16 

SUBIECTUL al II-lea (40 de puncte)  

1. Algoritmul de mai jos este prezentat in pseudocod. 

S-a notat cu a%b restul impartirii numerelor intregi a si b, iar prin [x] partea intreaga a numarului real x. 

a) Scrieti ce se afiseaza daca se citeste numarul 123454321. (6p.)   
b) Sa se scrie cel mai mic si cel mai mare numar natural de cinci cifre pentru care se afiseaza valoare 5. (6p.)  
c) Sa se scrie programul C/C++ corespunzator algoritmului dat. (10p.) 
d) Scrieti in pseudocod un algoritm echivalent cu cel dat, inlocuind adecvat a doua structura repetitiva cu o structura repetitiva de alt tip. (6p.) 

2. In secventa de mai jos, variabila a memoreaza elementele unui tablou bidimensional cu 4 linii (numerotate de la 0 la 3) si 4 coloane (numerotate de la 0 la 3), iar toate celelalte variabile sunt de tip intreg.  

Ce valoare va avea elementul a[3][3] si care este suma elementelor de pe prima linie a tabloului dupa executarea secventei de instructiuni scrisa alaturat? (6p.)  

3. Consideram declararea alaturata folosita pentru a memora numele, prenumele si cele 2 note ale unui elev. Stiind ca ???????????? este o variabila de tipul real, sa se scrie o instructiune care memoreaza in variabila ???????????? media aritmetica a notelor elevului ale carui informatii sunt memorate in variabila x. (6p.)   

SUBIECTUL al III-lea (30 de puncte)

1. Subprogramul calcul are un singur parametru, n, prin care primeste un numar natural MathML (base64):PG1hdGg+CiAgICA8bW8+KDwvbW8+CiAgICA8bWk+bjwvbWk+CiAgICA8bW8+JiN4MjIwODs8L21vPgogICAgPG1vPlsyLDwvbW8+CiAgICA8bXN1cD4KICAgICAgICA8bXJvdz4KICAgICAgICAgICAgPG1yb3c+CiAgICAgICAgICAgIDwvbXJvdz4KICAgICAgICAgICAgPG1uPjE8L21uPgogICAgICAgICAgICA8bW4+MDwvbW4+CiAgICAgICAgPC9tcm93PgogICAgICAgIDxtbj4zPC9tbj4KICAgIDwvbXN1cD4KICAgIDxtbz5dPC9tbz4KICAgIDxtbz4pPC9tbz4KPC9tYXRoPg==
Subprogramul returneaza suma divizorilor proprii lui n care sunt numere prime. Scrieti definitia completa a subprogramului.
Exemplu: Daca n=15, dupa apel subprogramul va returna valoarea 8. Numerele prime care sunt divizori proprii ai lui 15 sunt 3 si 5.   (10p.) 

2. Sa se scrie un program C/C++ care citeste de la tastatura un text de maxim 30 de caractere (litere mici ale alfabetului englez, textul contine cel putin o consoana si cel putin o vocala). Programul construieste in memorie si afiseaza pe ecran cuvantul obtinut prin eliminarea tuturor consoanelor din text. Se considera consoana orice caracter litera care nu se afla in multimea {a, e, i, o, u}. 
 Exemplu: Daca se citeste bacalaureat, pe ecran se va afisa aaauea.  (10p.)

3. In fisierul bac.in se gasesc cel mult 1000 numere naturale de cel mult 9 cifre fiecare. Numerele sunt in ordine crescatoare si sunt separate prin cate un spatiu. Proiectati un algoritm eficient din punct de vedere al memoriei utilizate si al timpului de executare, care citeste toti termenii sirului si afiseaza in fisierul bac.out, pe cate o linie, fiecare termen al sirului urmat de numarul de aparitii.
Valorile sunt separate prin cate un spatiu.  

a) Descrieti succint algoritmul de rezolvare utilizat, explicand in ce consta eficienta metodei folosite. (2p.)  
b) Sa se scrie un program C/C++ corespunzator algoritmului proiectat. (8p.) 
Exemplu: Daca fisierul bac.in contine valorile 1 1 1 1 22 555 555 555 In fisierul bac.out se va afisa 1 4
                                                                                                                                                            22 1
                                                                                                                                                           555 3 
 

Rezolvari Subiecte BAC Informatica - Limbaj C++ 


SUBIECTUL I (20 de puncte)  

1. Conditia x ∉ [2020, 2023] ⟺ x < 2020 sau x > 2023.
 Raspuns corect: c) (x<2020) || (x>2023).  
 

Modelul de rezolvare prezentat este extras din lucrarea INFORMATICA. Limbaj C++. Teste rezolvate pentru reusita la examenul de Bacalaureat. Specializarea Matematica-Informatica. Descoperiti modelele de teste care ii ajuta pe elevi sa obtina  NOTA 10 la examenul de Bacalaureat!  


2. Avem f(2022, 2024)=1011+f(2023, 2024)=1011+1011+f(2024, 2024)=1011+1011+1=2023.
 Raspuns corect: b) 2023.  

3. Pentru a rezolva mai usor notam cu cifre cele cinci soiuri. Vom avea multimea {1, 2, 3, 4, 5} si trebuie sa stabilim care este a cincea permutare generata. Folosind modelul de generare a permutarilor cu ajutorul metodei Backtracking avem: {1, 2, 3, 4, 5}, {1, 2, 3, 5, 4}, {1, 2, 4, 3, 5}, {1, 2, 4, 5, 3}, {1, 2, 5, 3, 4}.
 Raspuns corect: c) {cires, gutui, prun, mar, par}. 

4. Frunzele sunt acele valori care nu se afla in vectorul de „tati”.
 Raspuns corect: c) 3,4,6,8.

5. Numarul de arce este egal cu numarul valorilor de 1 din matricea de adiacenta.
 Raspuns corect: a) 8.  

SUBIECTUL al II-lea (40 de puncte) 

1.a) Algoritmul calculeaza cifra de control (calculeaza suma cifrelor numarului ????, apoi repetand procesul cu cifrele sumei obtinute anterior pana cand se obtine un numar format dintr-o singura cifra). Se afiseaza valoarea 7.   

1.b) Raspuns corect: 10004 si 99995.  




2. Matricea va avea elementele: 

A[3][3]=16 si suma elementelor pe prima linie este 4. 

3. Instructiunea ceruta este: med = (e.nota1+e.nota2)/2 

SUBIECTUL al III-lea (30 de puncte)
 
1. Pentru redactarea solutiei se combina algoritmul pentru determinarea divizorilor unui numar si algoritmul care determina daca un numar este prim. 

2. Folosim doua variabile de tipul char, s si t. Citim in s sirul de la tastatura, apoi parcurgem caracter cu caracter acest sir si copiem in t doar vocalele. 



3.a) Citim prima valoare din sir in variabila x, initializam numarul aparitiilor cu 1. Citim in variabila y urmatoarea valoare. Cat timp x=y incrementam nr. Daca x≠y se afiseaza x si nr, apoi nr=1. Continuam procedeul pana citim toate datele din fisier.
 Utilizam doar doua variabile intregi pentru a memora valorile a cate doi termeni consecutivi din sirul aflat in fisierul cu date de intrare (eficienta din punct de vedere a utilizarii memoriei).
 Eficienta din punct de vedere a timpului de executie se realizeaza parcurgand o singura data sirul.