Înapoi la fișa subiectului

Textul subiectului și baremului

Model oficial BAC Informatică Mate-Info C/C++ 2023

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ă Model
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++
Model
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 două valori pe care le poate avea variabila întreagă x, astfel încât, pentru
fiecare dintre acestea, expresia C/C++ alăturată să aibă valoarea 1.
x%20==x/23
a. {20, 40} b. {20,41} c. {40, 62} d. {60, 83}
2. Subprogramul f este definit
alăturat. Indicați un apel în urma
căruia în șirul afișat există două
valori egale cu 23.
void f(int m, int n)
{ cout<<(m+n)/2<<' '; | printf("%d ",(m+n)/2);
if(m<=n) f(m+1,n-2);
}
a. f(20,23); b. f(20,26); c. f(21,25); d. f(21,27);
3. Utilizând metoda backtracking, se generează toate torturile formate din trei straturi de tipuri distincte de
cremă din mulţimea {castane, mousse, frișcă, șerbet, ganache}. Ultimul strat este de frișcă sau de
ganache, iar aceste tipuri de cremă nu pot apărea pe primele două straturi. Două torturi cu straturi din
aceleași tipuri de cremă sunt diferite dacă acestea sunt dispuse în altă ordine. Primele patru soluții generate
sunt, în această ordine: (castane, mousse, frișcă), (castane, mousse, ganache), (castane,
șerbet, frișcă), (castane, șerbet, ganache). Indicați a șasea soluție generată.
a. (mousse, castane, ganache) b. (mousse, șerbet, frișcă)
c. (șerbet, castane, frișcă) d. (șerbet, mousse, ganache)
4. Un graf orientat cu 8 vârfuri, numerotate de la 1 la 8, are arcele (1,2), (1,3), (2,3), (2,6), (3,2),
(3,4), (3,6), (4,5), (4,7), (6,1), (7,4). Indicați numărul total de vârfuri ale componentei tare
conexe din care face parte vârful 3.
a. 2 b. 3 c. 4 d. 5
5. Un graf neorientat admite un ciclu eulerian, de lungime 11, precum și un ciclu hamiltonian, de lungime 7.
Indicați numărul de muchii care pot fi eliminate din graf, astfel încât graful parțial obținut să fie arbore.
a. 2 b. 3 c. 4 d. 5
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,p,q
(numere naturale nenule, pq)
s0
┌pentru xp,q execută
│┌dacă x%m=0 sau x%n=0 atunci
││ ss+x
│└■
│┌dacă x%m=0 şi x%n=0 atunci
││ ss-x
│└■
└■
scrie s
a) Scrieţi valoarea afişată dacă se citesc, în această ordine,
numerele 4, 3, 11 și 25. (6p.)
b) Dacă pentru m, n și p se citesc numerele 10, 15, respectiv
2, scrieţi două numere care pot fi citite pentru q astfel încât,
în urma executării algoritmului, pentru fiecare dintre
acestea, valoarea afişată să fie 250. (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ă cu test inițial. (6p.)

Subiectul · pagina 2

Ministerul Educaţiei
Centrul Naţional de Politici şi Evaluare în Educaţie
Probă scrisă la informatică Model
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. Variabila c, declarată alăturat, permite accesul la datele fiecăreia dintre
cele trei echipe participante la ultima etapă a unui concurs: numele și
rezultatul (număr natural din intervalul [0,100]); cele trei echipe au
rezultate distincte.
struct echipa
{ char nume[50];
int rezultat;
};
struct echipa c[3];
Scrieți o secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran, separate prin câte un
spațiu, numele celor trei echipe, în ordinea descrescătoare a rezultatelor obținute. (6p.)
3. Variabila p este de tip întreg, iar variabilele s1
şi s2 permit memorarea câte unui șir de cel
mult 30 de caractere. Scrieți ce se afișează în
urma executării secvenței alăturate. (6p.)
strcpy(s1, "plantau fistic");
p=strchr(s1,' ')-s1;
strcpy(s2,s1+p+1); strcpy(s1+p-1,s2+2);
strcpy(s2+1,s1+2);
cout<<p<<s2; | printf("%d%s",p,s2);
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul DoiTrei are un parametru, n, prin care primeşte un număr natural (n[0,109]).
Subprogramul returnează valoarea 1 dacă toate cifrele lui n sunt din mulțimea {2,3} sau valoarea 0 în
caz contrar. Scrieți definiția completă a subprogramului.
Exemplu: dacă n=22323 sau n=3, atunci subprogramul returnează 1, iar dacă n=2023 atunci
subprogramul returnează 0. (10p.)
2. Suprafața unui loc de joacă pentru copii este împărțită în n∙n zone de formă pătrată dispuse pe n rânduri
și n coloane, numerotate de la 1 la n, în fiecare zonă fiind plasat un tobogan, un leagăn, un balansoar
sau un carusel. Zonelor li se atribuie câte un cod, în funcție de destinație: codul 0 pentru tobogan, codul
1 pentru leagăn, codul 2 pentru balansoar și codul 3 pentru carusel.
Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n[1,102]), și cele n∙n
elemente ale unui tablou bidimensional, reprezentând codurile corespunzătoare zonelor din locul de
joacă, în ordinea parcurgerii lor rând după rând, și a fiecărui rând de la stânga la dreapta.
Programul determină zonele destinate plasării câte unui carusel, care NU au nicio
latură comună cu o zonă cu tobogan și, pentru fiecare dintre acestea, afișează pe
ecran numărul de ordine al rândului pe care se află. Numerele afișate sunt separate
prin câte un spațiu, iar dacă nu există nicio astfel de zonă, se afișează pe ecran
mesajul nu exista.
Exemplu: pentru n=6 și tabloul alăturat se afișează pe ecran, nu neapărat în
această ordine, numerele: 2 3 3 6. (10p.)
2 0 0 2 1 3
3 1 3 1 2 0
2 1 3 3 2 0
0 2 1 3 1 1
3 1 2 0 0 2
0 0 0 2 1 3
3. O pereche de numere naturale (x,y) se numește p-ordonată dacă x și y au paritate diferită, cu x>y,
sau dacă x și y au aceeași paritate.
Exemplu: (7,4), (8,7), (7,9) sunt perechi p-ordonate, dar (7,8), (8,9) nu sunt perechi p-ordonate.
Un șir, format din 2∙n numere naturale, se numește p-ordonat dacă perechile de forma (x,y) sunt
p-ordonate, pentru orice x, dintre primii n termeni ai șirului, și orice y, dintre ultimii n termeni ai șirului.
Fișierul bac.txt conține numere naturale din intervalul [0,106]: pe prima linie un număr nenul, n, iar
pe a doua linie un șir de 2∙n numere, separate prin câte un spațiu. Se cere să se afișeze pe ecran
mesajul DA, în cazul în care șirul aflat în fișier este p-ordonat, sau mesajul NU, în caz contrar. Proiectați
un algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate.
Exemplu: dacă fișierul are unul dintre conținuturile de mai jos, se afișează pe ecran mesajul DA.
5
22 37 21 8 15 2 3 14 4 5
5
22 36 20 8 14 44 42 4 2 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
Centrul Naţional de Politici şi Evaluare în Educaţie
Probă scrisă la informatică Model
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)
Model
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 2d 3a 4c 5d 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a) Răspuns corect: 90 6p.
b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două
numere conform cerinţei (oricare dintre numerele
70,71,72,73,74).
c) Pentru program corect
-declarare variabile
-citire date
-afişare date
-instrucţiune repetitivă
-instrucțiuni de decizie (*)
-atribuiri
-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
-utilizare a unei structuri repetitive cu test
inițial (*)
-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 specific
(inițializare a contorului, expresie logică pentru test
inițial, actualizare a contorului) conform cerinței.
2. Pentru rezolvare corectă
-acces la câmpurile înregistrării (*)
--identificare a valorilor în ordinea cerută
(**)
-afișare a datelor
-corectitudine globală a secvenței1)
6p.
2p.
2p.
1p.
1p.
(*) Se acordă numai 1p. dacă s-a accesat un câmp,
utilizând operatorul specific, dar nu pentru un element
al unui tablou, conform cerinței.
(**) Se acordă câte 1p. pentru fiecare aspect specific
(algoritm de ordonare/identificare principial corect,
criteriu de ordonare) conform cerinței.
3. Pentru rezolvare corectă
7fantastic
6p. Se acordă câte 2p. pentru fiecare aspect al cerinței
(valoare numerică, primele 5 litere ale cuvântului, ultimele
4 litere ale cuvântului).
SUBIECTUL al III - lea (30 de puncte)
1. Pentru subprogram corect
-antet subprogram (*)
-verificare a proprietății cerute (**)
-instrucțiune/instrucțiuni de returnare a
rezultatului
-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 al cerinței
(identificare a unei cifre din mulțimea dată, cifre suport
verificate, algoritm principial corect de verificare a unei
proprietăți).

Baremul · pagina 2

Ministerul Educaţiei
Centrul Naţional de Politici şi Evaluare în Educaţie
Probă scrisă la informatică Model
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
2. Pentru program corect
-declarare a unei variabile care să
memoreze codurile
-citire a datelor
-determinare a zonelor cu proprietatea
cerută (*)
-afişare a datelor ș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 al cerinței
(identificare a unei zone destinate unui
carusel/tobogan, zone vecine suport pentru un carusel
din interiorul suprafeței, zone vecine suport pentru un
carusel de pe rândul 1/n al suprafeței, zone vecine
suport pentru un carusel de pe coloana 1/n a suprafeței,
zone vecine suport pentru un carusel din colțurile
suprafeței, nicio latură comună cu o zonă cu tobogan).
3. a) Pentru răspuns corect
-coerenţă a descrierii algoritmului (*)
-justificare a elementelor de eficienţă
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,
care utilizează eficient memoria.
O soluţie posibilă determină, pe măsura citirii datelor,
cel mai mic număr par (p1), respectiv cel mai mic număr
impar (i1), dintre primele n numere din șir, precum și cel
mai mare număr par (p2), respectiv cel mai mare număr
impar (i2) dintre ultimele n numere din șir. Inițial,
p1=i1=1000001, p2=i2=-1. Șirul are proprietatea cerută
dacă p1>i2 și i1>p2
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.