Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Mate-Info C/C++ 2026 – sesiunea iunie–iulie, 2 iulie 2026, varianta 3

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 original

Subiectul · pagina 1

Ministerul Educaţiei și Cercetării
Centrul Naţional pentru Curriculum şi Evaluare
Probă scrisă la informatică Varianta 3
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 2026
Proba E. d)
Informatică
Limbajul C/C++
Varianta 3
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 x și y sunt întregi. Indicați o expresie C/C++ care are valoarea 1 dacă și numai dacă
numerele naturale memorate în variabilele x și y au aceeași paritate.
a. (x*y)%2==0 b. x%2==0 && y%2==0
c. (x+y)%2==0 d. !(x%2==y%2)
2. Subprogramul alăturat, f, este incomplet definit. Indicați
expresia cu care pot fi înlocuite punctele de suspensie,
astfel încât, în urma apelului de mai jos, să se afișeze 7.
f(35,17);
void f(int n, int d)
{ if(n%d==0)
cout<<d; | printf(”%d”,d);
else f(........);
}
a. n+1,d+1 b. n-1,d-1 c. n,d+1 d. n,d-1
3. Variabila p, declarată alăturat, memorează primul termen și rația
unei progresii aritmetice. Știind că diferența dintre un termen al
progresiei și termenul anterior este egală cu rația, indicați expresia
a cărei valoare este egală cu cel de al 10-lea termen al progresiei.
struct progresie
{ int prim;
int ratie;
}p;
a. prim.p+ratie.p*9 b. p.prim+9*p.ratie
c. progresie.prim.p+9*progresie.ratie.p d. p.progresie.prim+9*p.progresie.ratie
4. Un graf orientat cu 5 vârfuri, numerotate de la 1 la 5, este reprezentat prin
matricea de adiacență alăturată. Indicați numărul de vârfuri ale grafului cu
proprietatea că valoarea absolută a diferenței gradelor intern și extern este 1.
0 1 0 0 1
1 0 0 0 0
1 1 0 1 0
0 0 1 0 1
0 0 1 1 0
a. 2 b. 3 c. 4 d. 5
5. Un graf neorientat cu 6 noduri, numerotate de la 1 la 6, este
reprezentat alăturat. Indicați numărul maxim de muchii care pot fi
adăugate, astfel încât graful obținut să fie eulerian.
a. 9 b. 6 c. 3 d. 2

Subiectul · pagina 2

Ministerul Educaţiei și Cercetării
Centrul Naţional pentru Curriculum şi Evaluare
Probă scrisă la informatică Varianta 3
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. Se consideră algoritmul alăturat, reprezentat în pseudocod. citește n
(număr natural nenul)
s0; x0; p1
┌repetă
│ citește y (număr natural nenul)
│┌dacă y>x atunci
││ ss+y; xy
││altfel
││┌dacă x=y atunci ss-y
││└■
│└■
│ pp+1
└până când p>n
scrie s
a. Scrieți valorea afișată dacă se citesc, în această ordine,
numerele 8, 3, 1, 5, 2, 4, 5, 5, 7. (6p.)
b. Dacă pentru n se citește numărul 3, scrieți un set de date
care pot fi citite în continuare, astfel încât, în urma executării
algoritmului, să se afișeze 0. (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 repetitivă cu o structură de tip
pentru...execută. (6p.)
2. Utilizând metoda backtracking se generează toate seturile de câte cel mult trei materiale de promovare
turistică din mulţimea ordonată {broșură, ghid, pliant, revistă}, astfel încât din același set să nu
facă parte simultan un pliant și o revistă. Două seturi sunt distincte dacă diferă prin cel puțin un material.
Primele cinci soluții generate sunt, în această ordine, (broșură), (broșură, ghid), (broșură, ghid,
pliant), (broșură, ghid, revistă), (broșură, pliant). Scrieți a șasea și a șaptea soluție
generată. (6p.)
3. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii şi 5
coloane, numerotate de la 0 la 4, având iniţial toate elementele nule.
Fără a utiliza alte variabile, scrieți secvența C/C++ de mai jos, înlocuind punctele de
suspensie cu instrucțiuni adecvate, dintre care cel mult patru atribuiri, astfel încât, în urma
executării secvenței obținute, tabloul memorat în variabila a să aibă elementele alăturate.
for(i=0;i<5;i++)
for(j=0;j<5;j++)
.................. (6p.)
0 9 10 19 20
1 8 11 18 21
2 7 12 17 22
3 6 13 16 23
4 5 14 15 24
SUBIECTUL al III-lea (30 de puncte)
1. Numim număr uniform asociat unei valori naturale numărul obținut din aceasta prin eliminarea fie a
tuturor cifrelor sale pare, fie a tuturor cifrelor sale impare.
Exemplu: lui 19472 i se asociază numerele uniforme 197 și 42.
Subprogramul ImparPar are un singur parametru, n, prin care primește un număr natural cu toate
cifrele nenule (n∈[11,109)), având cel puțin o cifră pară și cel puțin o cifră impară. Subprogramul
returnează un număr obținut din cifrele numărului uniform impar asociat lui n, urmate de cifrele
numărului uniform par asociat lui n, ca în exemplu. Scrieți definiția completă a subprogramului.
Exemplu: dacă n=19472, subprogramul returnează numărul 19742. (10p.)
2. Scrieți un program C/C++ care citește de la tastatură un cuvânt format din cel puțin două și cel mult 100 de
caractere, numai litere mici ale alfabetului englez, și afișează pe ecran mesajul alterneaza, dacă în text nu
există două vocale sau două consoane pe poziții consecutive, sau mesajul nu alterneaza, în caz contrar.
Exemplu: pentru cuvintele imunopolizaharide sau pas se afișează mesajul alterneaza
iar pentru cuvântul aer se afișează mesajul nu alterneaza (10p.)
3. De-a lungul timpului, o persoană a participat la mai multe concursuri de șah și de go. Un rezultat motivant
corespunde unei poziții mai bune (cu un număr mai mic) în clasamentul unui concurs, comparativ cu
poziția obținută la concursul anterior de același tip.
Fișierul bac.txt conține un șir de cel mult 104 numere naturale, reprezentând rezultatele obținute
la concursurile la care a participat, în ordine cronologică: pentru fiecare dintre rezultate, câte o
pereche formată din poziția ocupată în clasamentul concursului corespunzător (un număr din
intervalul [1,300]), urmată de valoarea 1, dacă acesta a fost concurs de șah, sau de valoarea 2,
dacă acesta a fost concurs de go. Fiecare pereche se află pe câte o linie a fișierului, cu valorile
separate printr-un spațiu.
Se cere să se afișeze pe ecran, separate printr-un spațiu, două valori naturale, reprezentând,
în această ordine, numărul de rezultate motivante obținute la concursurile de șah, respectiv la
cele de go. Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al
spațiului de memorie utilizat.
Exemplu: dacă fișierul conține numerele alăturate, pe ecran se afișează 3 2
6 1
8 2
7 1
5 2
3 1
4 1
5 1
1 2
4 2
1 1
2 1
1 1
pentru că la șah a obținut trei rezultate motivante (poziția 3 după poziția 7, poziția 1 după poziția 5 și poziția 1
după poziția 2), iar la go două rezultate motivante (poziția 5 după poziția 8, poziția 1 după poziția 5).
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 original

Baremul · pagina 1

Ministerul Educaţiei și Cercetării
Centrul Naţional pentru Curriculum şi Evaluare
Probă scrisă la informatică Varianta 3
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 2026
Proba E. d)
Informatică
BAREM DE EVALUARE ȘI DE NOTARE
(comun pentru limbajele C/C++ şi Pascal)
Varianta 3
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 3b 4a 5b 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a. Răspuns corect: 5 6p.
b. Pentru răspuns corect 6p. Se acordă numai 2p. dacă s-au precizat 3 numere, dar nu
conform cerinței (orice set de numere naturale nenule de
forma x,x,y sau x,y,x cu proprietatea că y<x).
c. Pentru program corect
- variabile declarate, conform cerinței
- date citite, conform cerinței
- date afișate, conform cerinței
- instrucţiune repetitivă, conform cerinței
- instrucțiuni de decizie, conform cerinței
(*)
- atribuiri, conform cerinței
- corectitudine globală a programului1)
10p.
1p.
1p.
1p.
2p.
3p.
1p.
1p.
(*) Se acordă numai 2p. dacă doar una dintre instrucțiunile
de decizie este conform cerinței.
d. Pentru algoritm pseudocod corect
- structură repetitivă 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 punctează orice formă de structură repetitivă
conform cerinței (pentru...execută, for...do etc.).
(**) Se acordă câte 1p. pentru fiecare aspect specific
(expresie inițială pentru contor, expresie finală pentru
contor, doar actualizare automată a contorului) conform
cerinței.
2. Răspuns corect:
(broșură, revistă)
(ghid)
6p. Se acordă câte 3p. pentru fiecare dintre cele două
soluții conform cerinței.
3. Pentru rezolvare corectă
- expresie de accesare a unui element al
tabloului
- valori ale elementelor tabloului atribuite
conform cerinței (*)
- secvență completă, corectitudine globală
a secvenței1)
6p.
1p.
4p.
1p.
(*) Se acordă câte 2p. pentru fiecare aspect (identificare a
cel puțin unei relații între valoarea elementului și poziția
acestuia în tablou, valori suport în corelare cu pozițiile
elementelor utilizând numărul indicat de instrucțiuni de
atribuire) conform cerinței.

Baremul · pagina 2

Ministerul Educaţiei și Cercetării
Centrul Naţional pentru Curriculum şi Evaluare
Probă scrisă la informatică Varianta 3
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, conform
cerinței (*)
- valoare determinată conform cerinței (**)
- instrucțiune/instrucțiuni de returnare a
rezultatului, conform cerinței
- variabile locale declarate conform
cerinței, 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 1p. pentru fiecare aspect (algoritm
de bază de parcurgere a cifrelor unui număr, algoritm
de bază de obținere a unui număr pe baza unor cifre,
cifre suport impare în numărul uniform/numărul obținut,
cifre suport pare în numărul uniform/numărul obținut,
ordine a cifrelor pare/impare în cadrul numărului
uniform/secvenței de cifre cu aceeași paritate, ordine a
secvențelor de cifre impare/pare în cadrul numărului
cerut) conform cerinței.
2. Pentru program corect
- variabilă care să permită memorarea
unui șir de caractere, declarată conform
cerinței
- date citite, conform cerinței
- proprietate verificată conform cerinței (*)
- mesaj afișat, conform cerinței
- variabile simple declarate conform
cerinței, corectitudine globală a
programului1)
10p.
1p.
1p.
6p.
1p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect (algoritm
de bază pentru verificarea unei proprietăți, identificare
a unei vocale/consoane, accesare a unor caractere
aflate pe poziții consecutive, identificare a unei perechi
de vocale pe poziții consecutive, identificare a unei
perechi de consoane pe poziții consecutive, caractere
suport verificate) conform cerinței.
3. a. Pentru răspuns corect
- descriere coerentă a algoritmului,
conform cerinței (*)
- elemente de eficienţă justificate,
conform cerinței
2p.
1p.
1p.
(*) Se acordă punctajul chiar dacă algoritmul ales nu
este eficient.
(**) Se acordă numai 3p. dacă algoritmul parcurge toți
pașii necesari rezolvării, dar cu detalii care nu conduc
la rezultatul cerut.
(***) Se acordă punctajul numai pentru un algoritm liniar,
care utilizează eficient memoria.
O soluţie posibilă determină, pe măsura citirii datelor,
cele două numere cerute (ns și ng), și memorează
poziția în clasamentul ultimului concurs de șah (ups,
inițializată cu -1), respectiv de go (upg, inițializată
cu -1); la fiecare pas se citesc câte două valori, p și c,
și după caz, se incrementează ns (dacă c=1 și p<ups)
și ng (dacă c=2 și p<upg) și se actualizează ups (dacă
c=1) și upg (dacă c=2).
b. Pentru program corect
- operaţii cu fişiere: declarare, pregătire în
vederea citirii, citire din fişier
- valori determinate, conform cerinței
(*),(**)
- eficiență a algoritmului, conform cerinței
(***)
- variabile declarate, afișare a datelor
conform cerinței, corectitudine globală a
programului1)
8p.
1p.
5p.
1p.
1p.
1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.