Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2023 – sesiunea august–septembrie, 18 august 2023, varianta 7
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
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 7
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 2023
Proba E. d)
Informatică
Limbajul C/C++
Varianta 7
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 numerele pe care le pot memora variabilele întregi x și y, astfel
încât valoarea expresiei C/C++ alăturate să fie 1.
y%x–(x/y)*3!=0
a. x=25 și y=75 b. x=25 și y=15 c. x=15 și y=0 d. x=10 și y=30
2. Subprogramul f este definit alăturat. Indicați valoarea
f(3,2).
int f(int x, int y)
{ int z;
if (y==0) return 1;
z=f(x,y/2);
if (y%2!=0) return z*z*x;
return z*z;
}
a. 1 b. 2 c. 9 d. 18
3. Variabila s poate accesa un șir cu cel mult 20 de caractere. Indicați
șirul accesat prin s în urma executării secvenței alăturate.
strcpy(s,"2019");
strcpy(s+3,"23");
a. 20123 b. 201923 c. 202223 d. 2023
4. Utilizând metoda backtracking, se generează toate parfumurile formate prin amestecarea a câte 3
esențe distincte din mulțimea {bergamotă, cireș, iris, lămâie, salcâm}. Două parfumuri sunt
distincte dacă diferă prin cel puțin o esență. Primele patru soluții obținute sunt, în această ordine:
(bergamotă, cireș, iris), (bergamotă, cireș, lămâie), (bergamotă, cireș, salcâm) și
(bergamotă, iris, lămâie). Indicați penultima soluție generată.
a. (cireș, iris, salcâm) b. (cireș, lămâie, salcâm)
c. (lămâie, iris, salcâm) d. (iris, lămâie, salcâm)
5. Un graf neorientat are 5 noduri, numerotate de la 1 la 5, cu gradele
figurate în tabelul alăturat. Indicați o pereche de valori posibile
pentru x și y.
Nod 1 2 3 4 5
Grad 2 x 3 3 y
a. 0 și 4 b. 1 și 5 c. 2 și 3 d. 3 și 3Subiectul · pagina 2
Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 7
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 [c] partea întreagă a numărului real c.
citește n (număr natural nenul)
x0
┌cât timp n>0 execută
│ citește a,b (numere naturale)
│ ca; p1
│┌cât timp a>9 execută
││ a[a/10]; pp*10
│└■
│ aa*p+b
│┌dacă a≠c atunci
││ xx+1
│└■
│ nn-1
└■
scrie x
a. Scrieți valoarea afișată dacă se citesc, în această ordine,
numerele 3, 746, 82, 3067, 67, 78, 178. (6p.)
b. Dacă pentru n se citește numărul 2, scrieți un șir de numere
naturale din intervalul [0,9] care pot fi citite în continuare, în
acea ordine, astfel încât, în urma executării algoritmului, să se
afișeze valoarea 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 prima structură cât timp...execută cu o
structură repetitivă de tip pentru...execută. (6p.)
2. Într-un arbore cu rădăcină un nod se află pe nivelul x dacă lanțul elementar care are o extremitate în
nodul respectiv și cealaltă extremitate în rădăcina arborelui are lungimea x. Pe nivelul 0 se află un
singur nod (rădăcina).
Un arbore cu 6 noduri, numerotate de la 1 la 6, are muchiile [1,2], [2,3], [2,6], [3,4], [3,5].
Scrieți nodurile care pot fi desemnate ca rădăcină, astfel încât fiecare dintre arborii obținuți să aibă un
număr minim de niveluri. (6p.)
3. Variabila p, declarată alăturat, memorează caracteristicile unui produs:
denumire și preț. Scrieți o secvență de instrucțiuni C/C++ prin care
variabila a memorează valoarea primei litere a denumirii produsului
respectiv, dacă acesta are prețul strict mai mic decât 100, sau caracterul
* în caz contrar. (6p.)
struct produs
{ char denumire[20];
int pret;
}p;
char a;
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul DNPI are un singur parametru, n, prin care primește un număr natural (n∈[1,109]), și
afișează pe ecran, separați prin câte un spațiu, toți divizorii pozitivi impari ai lui n care NU sunt primi.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=90, se afișează pe ecran, nu neapărat în această ordine, numerele
1 9 15 45 (10p.)
2. Un joc folosește o tablă dreptunghiulară, pe care sunt reprezentate celule de dimensiune egală, dispuse
pe m linii și pe n coloane. În fiecare celulă este înscris un număr natural.
Numim pătrat de valoare p patru celule ale tablei, situate pe două linii consecutive și pe două coloane
consecutive, cu proprietatea că suma valorilor înscrise în aceste celule este egală cu p. Scopul jocului
este determinarea unui pătrat de valoare maximă.
Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul
[2,20], m și n, apoi elementele unui tablou bidimensional cu m linii și n coloane, numere
naturale din intervalul [0,104], reprezentând numerele înscrise pe tabla de joc, în
ordinea dispunerii celulelor corespunzătoare. Programul determină un pătrat de valoare
maximă al tablei și afișează pe ecran această valoare.
1 1 2 30
3 10 1 2
1 13 12 1
1 2 3 1
7 1 20 1
Exemplu: pentru m=5, n=4 și tabloul alăturat, se afișează pe ecran valoarea 36, corespunzătoare
pătratului evidențiat în figură. (10p.)
3. Fișierul date.in conține pe prima linie două numere naturale din intervalul [1,106], m și n, iar pe
următoarele două linii numere naturale din intervalul [0,102): pe a doua linie un șir A, de m numere, iar
pe a treia linie un șir B, de n numere. Numerele aflate pe aceeași linie sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran numărul maxim de perechi de forma (pa,pb) (pa∈[1,m], pb∈[1,n]),
cu proprietatea că termenul de pe poziția pa din șirul A are aceeași valoare cu termenul de pe poziția pb
din șirul B și că fiecare poziție, corespunzătoare șirului A, respectiv șirului B, apare în cel mult o
pereche, ca în exemplu. 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 6
(de exemplu, pentru perechile (1,1), (2,9), (4,2), (5,5), (6,6), (7,7)
sau pentru perechile (1,2), (2,9), (4,1), (5,7), (6,8), (8,5)).
8 9
1 0 4 1 5 3 5 5
1 1 1 7 5 3 5 3 0
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 Centrul Naţional de Politici şi Evaluare în Educaţie Probă scrisă la informatică Varianta 7 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 2023 Proba E. d) Informatică BAREM DE EVALUARE ȘI DE NOTARE (comun pentru limbajele C/C++ şi Pascal) Varianta 7 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) 1b 2c 3a 4b 5d 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 2 6p. b. Pentru răspuns corect 6p. Se acordă numai 2p. dacă s-au precizat patru numere, dar acestea nu conduc la scrierea valorii cerute, și numai 4p. dacă s-au precizat patru numere care conduc la scrierea valorii cerute, dar nu toate aparțin intervalului indicat. O soluție corectă este un șir de forma x, 0, y, 0, unde x și y sunt numere din intervalul indicat. c. Pentru program corect - variabile declarate, conform cerinței - date citite, conform cerinței - date afișate, conform cerinței - instrucţiuni repetitive, conform cerinței (*) - instrucțiune de decizie, conform cerinței - atribuiri, conform cerinței - corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 2p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile repetitive 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 va puncta 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ă a contorului, expresie finală a contorului, doar actualizare automată a contorului) conform cerinței. 2. Răspuns corect: 2, 3 6p. Se acordă numai 3p. dacă s-a scris doar un nod conform cerinței și numai 4p. dacă s-au scris și alte noduri în plus față de cele corecte. 3. Pentru rezolvare corectă - câmpuri ale înregistrării, accesate conform cerinței - date determinate, conform cerinței (*) - corectitudine globală a secvenței1) 6p. 1p. 4p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (atribuire a unei valori variabilei a, acces la primul caracter al unui șir, constantă de tip caracter cu sintaxă adecvată, valoare atribuită în funcție de preț) conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Centrul Naţional de Politici şi Evaluare în Educaţie Probă scrisă la informatică Varianta 7 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 (*) - valori determinate, conform cerinței (**) - date afișate, 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 2p. pentru fiecare aspect (determinare a unui divizor, identificare a unui număr prim/care nu este prim, divizori suport determinați) conform cerinței. 2. Pentru program corect - variabilă de tip tablou bidimensional, declarată conform cerinței - date citite conform cerinței - valoare determinată conform cerinței (*) - date afişate, 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 (identificare a unui pătrat situat în interiorul tabloului, identificare a unui pătrat cu o latură pe prima linie/coloană a tabloului, identificare a unui pătrat cu o latură pe ultima linie/coloană a tabloului, determinare a valorii unui pătrat, algoritm principial corect de determinare a unei valori maxime, pătrate suport verificate pentru determinarea valorii maxime) 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 este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar. O soluție posibilă utilizează doi vectori de frecvență, fie aceștia a și b, unde ai este numărul aparițiilor valorii i în primul șir, iar bi este numărul aparițiilor valorii i în al doilea șir; vectorii sunt completați pe măsura citirii datelor din fișier, iar numărul afișat se obține ulterior prin însumarea valorilor min(ai,bi). b. Pentru program corect - operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - valoare determinată, 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.