Textul subiectului și baremului
Simulare BAC Informatică Mate-Info C/C++ 2025 – 26 martie 2025
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 de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Simulare
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++
Simulare
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. Indicați valoarea expresiei C/C++ alăturate. 20.25/2.5*100
a. 0 b. 0.081 c. 810 d. 1000
2. 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;
}
a. f(5) b. f(2) c. f(1) d. 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]
4. 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
5. 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
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.
citește m,n
(numere naturale)
┌dacă m<n atunci
│ nn+m
│ mn-m
│ nn-m
└■
km
┌pentru im,n,-1 execută
│ scrie k, ' '
│┌dacă i%2=0 atunci
││ kk-1
││ scrie '*'
│└■
│ kk-1
└■
a. Scrieți ce se afișează în urma executării algoritmului dacă se citesc, în
această ordine, numerele 20 și 25. (6p.)
b. Dacă pentru m se citește numărul 5, scrieți două numere din
intervalul [1,50] care pot fi citite pentru n astfel încât, în urma
executării algoritmului, pentru fiecare dintre acestea, ultima valoare
numerică afișată să fie 2. (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.)Subiectul · pagina 2
Ministerul Educației și Cercetării
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Simulare
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
2. Utilizând metoda backtracking se generează toate grupele de accesorii pentru înot din mulțimea ordonată
astfel: {cască, clipsuri pentru nas, costum de înot, dopuri pentru urechi, înotătoare,
ochelari, pantofi acvatici, placă}. Accesoriile au prețurile următoare, exprimate în lei: cască - 20,
clipsuri pentru nas - 10, costum de înot - 50, dopuri pentru urechi - 20,
înotătoare - 150, ochelari - 50, pantofi acvatici - 100, placă - 150. Într-o grupă accesoriile
sunt distincte și costă, în total, 200 de lei. Două soluții diferă prin cel puțin un accesoriu. Primele trei soluții
generate sunt, în această ordine: (cască, clipsuri pentru nas, costum de înot, dopuri pentru
urechi, pantofi acvatici), (cască, clipsuri pentru nas, dopuri pentru urechi,
înotătoare), (cască, clipsuri pentru nas, dopuri pentru urechi, ochelari, pantofi
acvatici). Scrieți a patra și a cincea soluție obținute, în ordinea generării acestora. (6p.)
3. Variabila s memorează date ale fiecăruia dintre cei 30 de specialiști IT ai unei companii: date personale
(codul numeric personal – CNP și anul nașterii) și anul angajării. Știind că expresiile C/C++ de mai jos
reprezintă codul numeric personal (un șir de 13 caractere/cifre), anul nașterii, respectiv anul angajării
(numere naturale din intervalul [1970,2025]) celui de al șaselea angajat, scrieți definiția unei structuri,
cu eticheta specialist, înregistrare care să permită memorarea datelor unui specialist IT, și declarați
corespunzător variabila s.
s[5].personal.CNP s[5].personal.anNastere s[5].anAngajare (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Un număr „care aduce bucurie” - harsad (sau număr Niven), este un număr întreg divizibil cu suma
cifrelor sale.
Subprogramul harsad are doi parametri:
• k, prin care primește un număr natural (k[1,106]);
• n, prin care furnizează cel mai mare număr natural harsad mai mic sau egal cu k.
Scrieți definiția completă a subprogramului.
Exemplu: pentru k=2027, după apel, n=2025 (2+0+2+5=9, iar 2025 este divizibil cu 9). (10p.)
2. Două cuvinte se numesc asemenea dacă sunt distincte și au același număr de vocale. Se
consideră vocale literele a, e, i, o, u.
Scrieți un program C/C++ care citește de la tastatură un număr natural n (n[1,102]),
apoi n cuvinte, separate prin Enter. Fiecare cuvânt este format din cel mult 20 de
caractere, numai litere mici ale alfabetului englez. Programul afișează pe ecran, separate
prin câte un spațiu, toate cuvintele asemenea cu ultimul cuvânt citit, sau mesajul
nu exista dacă nu există astfel de cuvinte.
Exemplu: dacă se citesc datele alăturate, se afișează pe ecran, nu neapărat în această
ordine, cuvintele:
lalelele brandusele (10p.)
9
mereu
primavara
infloresc
ghioceii
lalelele
si
brandusele
de
primavara
3. Pentru o paradă a modei sunt pregătite seturi de bijuterii, un set fiind format din cercei și pandantiv, cu câte
cel puțin două pietre prețioase și semiprețioase. Sunt utilizate nouă tipuri de pietre, numerotate de la 1 la 9,
iar orice bijuterie are o etichetă, număr natural în care fiecare cifră corespunde unei pietre din montură, în
ordinea descrescătoare a importanței în cadrul modelului. Un set este potrivit dacă cele mai importante
două pietre ale fiecărei bijuterii din set sunt de același tip, chiar dacă nu în aceeași ordine a importanței.
Fișierul bijuterii.in conține numere naturale din intervalul [10,999]: pe prima linie două numere
nc și np, reprezentând numărul de cercei, respectiv de pandantive disponibile, pe a doua linie un șir de
nc numere, reprezentând etichetele cerceilor, iar pe a treia linie un șir de np numere, reprezentând
etichetele pandantivelor. Numerele aflate pe aceeași linie a fișierului sunt separate prin câte un spațiu. Se
cere să se afișeze pe ecran mesajul DA, dacă se poate forma cel puțin un set potrivit de bijuterii, sau
mesajul NU, în caz contrar. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele alăturate,
se afișează pe ecran mesajul DA
10 11
497 125 521 497 513 258 491 55 551 16
21 259 943 77 945 57 52 552 16 17 71
(două dintre cele 14 seturi potrivite se pot forma din cerceii cu eticheta 258 și fiecare dintre pandantivele cu
etichetele 259, respectiv 52, pentru toate aceste bijuterii pietrele de tipurile 2 și 5 fiind cele mai importante).
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 de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Simulare 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) Simulare 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) 1c 2d 3a 4b 5a 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 25 24 *22 21 *19 18 * 6p. Se acordă câte 2p. pentru fiecare triplet format din două valori numerice și un simbol *, conform cerinței, b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinţei (oricare dintre numerele 3, 10, 11). c. Pentru program corect -declarare a variabilelor -citire a datelor -afișare a datelor -instrucțiuni de decizie (*) -instrucțiune repetitivă -atribuiri -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 2p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile de decizie este conform cerinței. d. Pentru algoritm pseudocod corect -utilizare a unei structuri repetitive de tipul indicat (*) -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 pentru orice formă de structură repetitivă de tipul cerut (cât timp ... execută, while ... do etc.). (**) Se acordă câte 1p. pentru fiecare aspect specific (expresie de inițializare a contorului, expresie logică pentru test inițial, instrucțiune de actualizare a contorului) conform cerinței. 2. Răspuns corect: (cască, clipsuri pentru nas, dopuri pentru urechi, placă) (costum de înot, înotătoare) 6p. Se acordă câte 3p. pentru fiecare soluție conform cerinței. 3. Pentru răspuns corect -definire a structurii/tipului cerute (*) -definire a variabilei conform cerinței -corectitudine globală a secvenței1) 6p. 4p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect (definire de bază a unei structuri/înregistrări, etichetă/nume, câmp de tip simplu - anAngajare, câmp de tip structurat - personal) conform cerinței. Se punctează câmpul structurat, conform cerinței, atât dacă structura/înregistrarea corespunzătoare este definită separat cât și dacă este definită în cadrul structurii/înregistrării cerute.
Baremul · pagina 2
Ministerul Educației și Cercetării Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Simulare 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 conform cerinței -antet al subprogramului (*) -determinare a valorii cerute (**) -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 3p. 6p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, parametru de intrare, parametru de ieșire) conform cerinței. (**) Se acordă câte 1p. pentru fiecare aspect specific (algoritm de bază pentru determinarea sumei unei serii de valori, acces la o cifră a unui număr, cifre suport în cadrul sumei, identificare a unui număr harsad, algoritm de bază pentru determinarea într-o serie a primei/ultimei valori ce respectă o anumită proprietate, numere harsad suport verificate) conform cerinței. 2. Pentru program corect -declarare a unei variabile care să permită memorarea cuvintelor, conform cerinței -citire a datelor -determinare a cuvintelor conform cerinței (*) -afișare a cuvintelor în formatul cerut și tratare a cazului nu exista -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (algoritm de bază pentru numărare a unei serii de valori, identificare a unei vocale/consoane, vocale suport numărate pentru un cuvânt, identificare cuvinte identice/distincte, identificare a două cuvinte cu același număr de vocale, cuvinte suport asemenea identificate) 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 pentru cercei, ac, în care aci (i[11,99]) este 1 dacă există cel puțin o bijuterie (cercei) cu codul x pentru care i=[x/10] (dacă x[111,999]) sau i=x (dacă x[11,99]). Vectorul ac se completează pe măsura citirii datelor referitoare la cercei, iar la parcurgerea datelor referitoare la pandantive, pentru fiecare etichetă, p, se determină primele două cifre ale sale, p1 și p2 și numerele i și j, unde i=p1*10+p2, iar j=p2*10+p1, iar rezultatul este DA, în cazul în care există cel puțin o valoare p pentru care aci sau acj sunt nenule, sau este NU, în caz contrar. b. Pentru program corect -operații cu fișiere: declarare, pregătire în vederea citirii, citire din fișier -verificare a proprietății 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.