Înapoi la fișa subiectului

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 original

Subiectul · 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 3

Subiectul · 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)
x0
┌cât timp n>0 execută
│ citește a,b (numere naturale)
│ ca; p1
│┌cât timp a>9 execută
││ a[a/10]; pp*10
│└■
│ aa*p+b
│┌dacă a≠c atunci
││ xx+1
│└■
│ nn-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 original

Baremul · 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.