Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2025 – sesiunea specială, 26 mai 2025, varianta 6
Acesta este textul selectabil extras automat din documentele PDF ale acestei variante. Pentru formule, tabele, pseudocod sau grafice, verifică pagina originală din PDF înainte de a rezolva exercițiile.
Subiectul
Deschide PDF-ul originalSubiectul · pagina 1
Ministerul Educației și Cercetării
Centrul Național pentru Curriculum și Evaluare
Probă scrisă la INFORMATICĂ Varianta 6
Limbajul C/C++
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocațională, profil militar, specializare matematică-informatică
Pagina 1 din 2
Examenul național de bacalaureat 2025
Proba E. d)
INFORMATICĂ
Limbajul C/C++
Varianta 6
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocațională, profil militar, specializare matematică-informatică
• Toate subiectele sunt obligatorii. Se acordă zece puncte din oficiu.
• Timpul de lucru efectiv este de trei ore.
• Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor
precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în
formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
• În grafurile din cerințe oricare arc/muchie are extremități distincte și oricare două arce/muchii diferă
prin cel puțin una dintre extremități.
SUBIECTUL I (20 de puncte)
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului
corect. Fiecare răspuns corect se notează cu 4 puncte.
1. Variabilele m, n, p, q și x sunt de tip întreg, iar m<p<q<n. Indicați o expresie C/C++ care are valoarea 1
dacă și numai dacă numărul memorat în variabila x aparține intervalului [m,n], dar NU și intervalului
(p,q).
a. x<=m || x>=p && x<=q || x>=n b. x<=m && x>=p || x<=q && x>=n
c. x>=m || x<=p && x>=q || x<=n d. x>=m && x<=p || x>=q && x<=n
2. Subprogramul f este
definit alăturat. Indicați
ce se afișează în urma
apelului de mai jos.
f(2050);
void f(int n)
{ cout<<n<<' '; | printf("%d ",n);
if(n%10!=0) { cout<<n<<' '; | printf("%d ",n);
f(n/10);
}
else if(n!=0){ f(n/10);
cout<<n<<' '; | printf("%d ",n);
}
}
a. 2050 205 20 2 0 b. 2050 205 20 2 0 20 2050
c. 2050 205 205 20 2 2 0 20 2050 d. 2050 2050 205 205 20 20 2 2 0
3. Utilizând metoda bactracking se generează toate tipurile de propoziții formate din patru unități sintactice
(părți ale propoziției): un subiect, un predicat, un atribut și un complement, astfel încât atributul să
fie plasat imediat înainte ori imediat după subiect. Două propoziții diferă prin ordinea unităților sale
sintactice. Primele patru soluții generate sunt, în această ordine: (subiect, atribut, predicat,
complement), (subiect, atribut, complement, predicat), (predicat, subiect, atribut,
complement), (predicat, atribut, subiect, complement). Indicați ultima soluție generată.
a. (complement, atribut, subiect, predicat) b. (complement, atribut, predicat, subiect)
c. (complement, subiect, atribut, predicat) d. (complement, predicat, subiect, atribut)
4. Variabila m memorează elementele unui tablou bidimensional cu 100 de linii și 100 de coloane, numerotate
de la 0 la 99. Indicați o expresie C/C++ prin care poate fi accesat un element aflat pe diagonala principală
a tabloului.
a. m[1,16] b. m[16][16] c. m(16,16) d. m(16)(1)
5. Un graf neorientat are 7 noduri și 21 de muchii. Indicați numărul minim de muchii care pot fi eliminate din
acest graf, astfel încât graful parțial obținut să aibă două componente conexe, cu cel puțin două noduri
fiecare.
a. 6 b. 8 c. 10 d. 12Subiectul · pagina 2
Ministerul Educației și Cercetării
Centrul Național pentru Curriculum și Evaluare
Probă scrisă la INFORMATICĂ Varianta 6
Limbajul C/C++
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică
Filieră vocațională, profil militar, specializare matematică-informatică
Pagina 2 din 2
SUBIECTUL al II-lea (40 de puncte)
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 și cu [c] partea întreagă a numărului real c.
citește m,n
(numere naturale nenule, m≤n)
┌pentru in,m,-1 execută
│ xi
│ cx%10
│┌repetă
││ x[x/10]
│└până când x%10≠c
│┌dacă x=0 atunci
││ scrie i,' '
│└■
└■
a. Scrieți numerele afișate dacă se citesc, în această ordine, numerele
75 și 90. (6p.)
b. Dacă pentru variabila m se citește valoarea 2025, scrieți două numere
distincte care pot fi citite pentru variabila n, astfel încât, pentru fiecare
dintre acestea, în urma executării algoritmului, să se afișeze o singură
valoare. (6p.)
c. Scrieți programul C/C++ corespunzător algoritmului dat. (10p.)
d. Scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind structura pentru...execută cu o
structură repetitivă de tip cât timp...execută. (6p.)
2. Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin vectorul de „tați” (3, 0, 2, 5, 2, 5, 1, 5).
Enumerați două noduri ale arborelui care pot fi alese drept rădăcină (cu excepția rădăcinii curente), astfel
încât nodul 4 să aibă aceiași „frați” ca în reprezentarea dată. (6p.)
3. În declarările alăturate variabila d memorează în câmpurile A și B
coordonatele, în sistemul de coordonate xOy, ale vârfurilor din stânga – sus,
respectiv din dreapta – jos ale unui dreptunghi cu laturile paralele cu axele
sistemului de coordonate. Scrieți o secvență de instrucțiuni C/C++ în urma
executării căreia se afișează pe ecran mesajul DA, dacă figura
corespunzătoare variabilei d este pătrat sau mesajul NU în caz contrar.
(6p.)
struct punct
{ int x,y;
};
struct figura
{ punct A, B;
} d;
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul diviz are un singur parametru, n, prin care primește un număr natural (n∈[1,109]).
Subprogramul returnează cel mai mare divizor al lui n care este pătrat perfect.
Scrieți definiția completă a subprogramului C/C++.
Exemplu: pentru n=72 subprogramul returnează 36, pentru n=16 subprogramul returnează 16, iar pentru
n=15 subprogramul returnează 1. (10p.)
2. Într-un text de cel mult 100 de caractere cuvintele sunt formate doar din litere mici ale alfabetului englez și
sunt separate prin unul sau mai multe spații. Textul are cel puțin două cuvinte.
Scrieți un program C/C++ care citește de la tastatură un text de tipul precizat mai sus și îl transformă în
memorie prin eliminarea sau inserarea unor spații și a unor cratime (simbolul -), astfel încât între oricare
două cuvinte consecutive în text să fie câte o cratimă, încadrată la stânga și la dreapta de câte un spațiu,
ca în exemplu. Programul afișează pe ecran textul obținut.
Exemplu: pentru textul
anul acesta devin student
se obține
anul – acesta – devin - student (10p.)
3. Fișierul text bac.txt conține un șir de cel mult 106 triplete de numere naturale din intervalul [1,102],
numerele din fiecare triplet reprezentând lungimile laturilor câte unui triunghi. Fiecare triplet se află pe câte
o linie a fișierului, iar numerele care îl compun sunt separate prin câte un spațiu.
Într-un triunghi dreptunghic pătratul lungimii ipotenuzei este egal cu suma pătratelor lungimilor
celor două catete.
Se cere să se afișeze pe ecran numărul maxim de triunghiuri dreptunghice din fișier care au aceeași
lungime a ipotenuzei. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele alăturate, pe ecran se afișează 3
(sunt trei triunghiuri de tipul cerut cu ipotenuza 25: două au catetele 7, respectiv 24, și unul
are catetele 15, respectiv 20).
6 10 6
7 24 25
7 25 24
25 14 13
8 6 10
15 20 25
4 5 3
a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
b. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educației și Cercetării Centrul Național pentru Curriculum și Evaluare Probă scrisă la informatică Varianta 6 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 1 din 2 Examenul național de bacalaureat 2025 Proba E. d) Informatică BAREM DE EVALUARE ȘI DE NOTARE (comun pentru limbajele C/C++ și Pascal) Varianta 6 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică • Se punctează orice modalitate de rezolvare corectă a cerinţelor. • Nu se acordă punctaje intermediare, altele decât cele precizate explicit în barem. Nu se acordă fracţiuni de punct. • Se acordă zece puncte din oficiu. Nota finală se calculează prin împărțirea la zece a punctajului total acordat pentru lucrare. • Utilizarea unui tip de date care depăşeşte domeniul de valori precizat în enunţ (de exemplu tipuri întregi cu semn pentru memorarea numerelor naturale, dimensiune a tablourilor) este acceptată din punctul de vedere al corectitudinii programului, dacă acest lucru nu afectează funcționarea sa. SUBIECTUL I (20 de puncte) 1d 2c 3a 4b 5c 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 88 77 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinței. b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinței (numere din intervalul [2222,3332]) c. Pentru program corect -declarare a variabilelor -citire a datelor -afișare a datelor -instrucțiune de decizie -instrucțiuni repetitive (*) -atribuiri -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile repetitive este conform cerinței. d. Pentru algoritm pseudocod corect -utilizare a unei structuri repetitive de tipul cerut (*) -aspecte specifice ale secvenței obținute prin înlocuire, conform cerinței (**) -algoritm complet, corectitudine globală a algoritmului1) 6p. 2p. 3p. 1p. (*) Se acordă punctajul chiar dacă algoritmul obținut nu este echivalent cu cel dat. Se va puncta orice formă de structură repetitivă conform cerinței (cât timp...execută, while... do etc.). (**) Se acordă câte 1p. pentru fiecare aspect (inițializare contor, expresie logică pentru test inițial, actualizare contor) conform cerinței. 2. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinței (oricare dintre numerele 1,3,7). 3. Pentru rezolvare corectă -acces la câmpurile de pe primul nivel al înregistrării -acces la câmpurile de pe al doilea nivel al înregistrării -corespondență mesaje-proprietate -corectitudine globală a secvenței1) 6p. 2p. 2p. 1p. 1p.
Baremul · pagina 2
Ministerul Educației și Cercetării Centrul Național pentru Curriculum și Evaluare Probă scrisă la informatică Varianta 6 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 2 din 2 SUBIECTUL al III - lea (30 de puncte) 1. Pentru subprogram corect -antet al subprogramului (*) -determinare a valorii cerute (**) -returnare a valorii cerute -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 2p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, parametru de intrare) conform cerinței. (**) Se acordă câte 2p. pentru fiecare aspect (algoritm de bază pentru determinarea unei valori maxime/a unei ultime valori cu o anumită proprietate dintr-o serie, identificare a unui divizor pătrat perfect, divizori suport analizați pentru determinarea maximului) conform cerinței. 2. Pentru program corect -declarare a unei variabile care să memoreze un șir de caractere, conform cerinței -citire a unui șir conform cerinței -transformare a șirului conform cerinței (*) -afişare a datelor, conform cerinței -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui cuvânt, inserare a unor caractere într-un șir, utilizarea unor secvențe spațiu-cratimă- spațiu, inserare a unei secvențe indicate între două cuvinte, caractere suport inserate /eliminate / nemodificate, transformare în memorie) conform cerinței. 3. a. Pentru răspuns corect -descriere coerentă a algoritmului (*) -justificare a elementelor de eficiență, conform cerinței 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. (**) Se acordă numai 3p. dacă algoritmul parcurge pașii necesari rezolvării, dar cu detalii care conduc la o rezolvare parţială. (***) Se acordă punctajul numai pentru un algoritm liniar. O soluţie posibilă utilizează un vector de apariții v, în care vi este numărul de triunghiuri dreptunghice din fișier care au lungimea ipotenuzei egală cu i. Pe măsura citirii datelor din fișier, pentru fiecare triplet se identifică cea mai mare valoare/latură (i) și, dacă tripletul respectă proprietatea specifică pentru triunghi dreptunghic, se incrementează vi. Numărul cerut este cea mai mare valoare memorată în vectorul v. b. Pentru program corect -operații cu fișiere: declarare, pregătire în vederea citirii, citire din fișier, conform cerinței -determinare a valorii cerute (*),(**) -utilizare a unui algoritm eficient (***) -declarare a variabilelor, afișare a datelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.