Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Mate-Info C/C++ 2022 – varianta 4

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 4
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 2022
Proba E. d)
Informatică
Limbajul C/C++
Varianta 4
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 muchie are extremități distincte și oricare două 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 expresia C/C++ cu valoarea 2022.
a. 4044/4/2 b. 4044/(4*2) c. 1011*1+1 d. 1011*(1+1)
2. Subprogramul f este definit alăturat. Indicați
valoarea parametrului x pentru care f(x,3)
are valoarea 2022.
int f(int n,int p)
{ if(n==0) return 0;
else if(p==0) return n*10+2;
else return f(n/10,p-1);
}
a. 120234 b. 122023 c. 202345 d. 220223
3. Utilizând metoda backtracking, se generează toate posibilitățile de a expune câte trei mașini produse în
România, din gama Dacia, din mulţimea {Dokker (negru), Duster (negru), Lodgy (gri), Logan (alb),
Sandero (roșu)}, astfel încât să nu fie expuse simultan două mașini de aceeași culoare, Sandero să NU
apară pe prima poziție, iar Logan să NU fie înainte de Dokker sau Duster. Două soluții sunt distincte dacă
au cel puțin o mașină diferită sau dacă ordinea mașinilor este diferită. Primele cinci soluţii generate sunt,
în această ordine (Dokker, Lodgy, Logan), (Dokker, Lodgy, Sandero), (Dokker, Logan, Lodgy),
(Dokker, Logan, Sandero), (Dokker, Sandero, Lodgy). Indicaţi penultima soluție, în ordinea generării
acestora.
a. Logan, Lodgy, Sandero b. Logan, Sandero, Lodgy
c. Lodgy, Dokker, Logan d. Lodgy, Logan, Dokker
4. Variabilele s și d permit memorarea câte unui șir cu maximum 50
de caractere. Indicați șirul memorat prin intermediul variabilei d
în urma executării secvenței alăturate.
strcpy(s,"info@rocnee.eu");
s[strlen(s)-3]='\0';
strcpy(d,strchr(s,'@')+1);
a. inf@r b. info@ c. rocnee d. rocnu
5. Într-un arbore cu 7 noduri, numerotate de la 1 la 7, nodul 1 este rădăcină și pentru orice nod numerotat
cu i (i[1,7]), dacă se notează cu F(i) numărul de descendenți direcți („fii”) ai săi, atunci F(i)=0,
dacă i este „frunză”, altfel F(i)=i+1. Indicați numărul maxim de „frați” ai nodului 7.
a. 4 b. 3 c. 2 d. 1

Subiectul · pagina 2

Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 4
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 a%b restul împărţirii numărului natural a la numărul
natural nenul b şi cu [c] partea întreagă a numărului real c.
citeşte n (număr natural)
┌repetă
│ xn%100
│┌dacă x>1 atunci
││ p(x%2)*(x%3)*(x%5)*(x%7)
││┌dacă p0 atunci
│││ scrie x,’ ’
││└■
│└■
│ n[n/10]
└până când n<10
a. Scrieţi ce se afișează în urma executării algoritmului dacă se
citeşte numărul 1237518. (6p.)
b. Scrieţi două numere din intervalul [100,999] care pot fi citite,
astfel încât, pentru fiecare dintre acestea, în urma executării
algoritmului, să se afişeze două numere. (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 repetă...până când cu o
structură repetitivă cu test inițial. (6p.)
2. Un graf neorientat cu 6 noduri, numerotate de la 1 la 6, are muchiile [1,2], [1,3], [1,4], [1,5],
[2,3], [2,4], [2,5], [3,5], [4,6], [5,6]. Scrieți mulțimea muchiilor unui subgraf al acestui
graf, care să fie complet și să aibă un număr maxim de noduri. (6p.)
3. Pentru o sală de spectacole se memorează următoarele informații specifice:
numărul de locuri disponibile și prețul biletului pentru un loc. Variabilele i și s
sunt întregi, iar variabila t memorează informațiile specifice pentru fiecare dintre
cele 15 săli de spectacole dintr-un oraș.
struct sala
{ int nrLocuri;
int pret;
} t[15];
Scrieți o secvență de instrucțiuni în urma executării căreia variabila s să memoreze suma totală obținută în
urma vânzării biletelor pentru un festival de teatru care s-ar desfășura simultan în toate sălile, iar acestea ar
fi ocupate complet. (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul patrate are trei parametri:
• n, prin care primeşte un număr natural (n∈[2,109]);
• x și y, prin care furnizează câte un număr natural cu proprietatea că x2∙y2=n și 2≤x<y sau valoarea 0,
prin fiecare dintre aceștia, dacă nu există două astfel de numere. Dacă sunt mai multe astfel de valori, se
furnizează cele corespunzătoare unei valori minime a lui x.
Scrieţi definiţia completă a subprogramului.
Exemplu: pentru n=400, după apel, x=2 şi y=10, iar pentru n=16 sau n=24, după apel, x=0 şi y=0. (10p.)
2. Suprafața unei scene a fost împărțită în zone dispuse ca elementele unui tablou bidimensional cu număr
egal de linii și coloane. Fiecare instrument are alocată o zonă și este identificat printr-un număr natural.
Dirijorul hotărăște eliminarea tuturor instrumentelor plasate pe diagonala principală a tabloului și
rearanjarea celor păstrate, prin deplasarea unora dintre acestea cu câte o poziție spre stânga, astfel încât
să nu existe zone intermediare libere, ca în exemplu.
Scrieţi un program C/C++ care citeşte de la tastatură numere naturale din intervalul [2,102], și anume n şi
elementele unui tablou bidimensional cu n linii şi n coloane, reprezentând numerele de identificare ale
instrumentelor, în ordinea plasării lor inițiale pe scenă. Programul modifică apoi tabloul în memorie
corespunzător hotărârii dirijorului și afişează pe ecran tabloul obținut, fiecare linie a tabloului pe câte o linie
a ecranului, elementele de pe aceeași linie fiind separate prin câte un spațiu.
Exemplu: pentru n=4 şi tabloul 20 30 80 52
71 93 64 51
62 81 55 49
90 65 32 22
se obține tabloul 30 80 52
71 64 51
62 81 49
90 65 32 (10p.)
3. Numim secvență progresivă a unui șir crescător de numere naturale un subșir al acestuia, format din
termeni aflați pe poziții consecutive în șirul dat, cu proprietatea că fiecare termen apare în subșir de un
număr de ori egal cu valoarea sa. Lungimea secvenței este egală cu numărul de termeni ai acesteia.
Fișierul bac.txt conține un șir crescător de cel mult 106 numere naturale din intervalul [1,106], astfel
încât orice termen al șirului apare de un număr de ori cel mult egal cu valoarea sa. Numerele sunt separate
prin câte un spațiu.
Se cere să se afișeze pe ecran lungimea maximă a unei secvențe progresive din șirul aflat în fișier.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate.
Exemplu: dacă fişierul conţine numerele 1 2 2 3 4 4 4 4 6 6 6 6 6 6 7 7 7 8 8 8 8 8 8 8 8
atunci pe ecran se afișează valoarea 10.
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 4
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 2022
Proba E. d)
Informatică
BAREM DE EVALUARE ȘI DE NOTARE
(comun pentru limbajele C/C++ și Pascal)
Varianta 4
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)
1d 2c 3a 4c 5b 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a) Răspuns corect: 37 23 6p. Se acordă numai 3p. dacă numai una dintre valori
este conform cerinței sau numai 4p. dacă, pe lângă
valorile cerute, sunt scrise și alte valori.
b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare număr conform
cerinței (valori de forma 𝑥𝑦𝑧̅̅̅̅̅ cu proprietatea că 𝑥𝑦̅̅̅ și
𝑦𝑧̅̅̅ sunt numere prime).
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 cu test
inițial (*)
-expresie logică pentru test inițial în
secvența obținută 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.).
2. Răspuns corect:
[1,2], [1,3], [1,5],
[2,3], [2,5], [3,5]
6p. Se acordă numai 3p. dacă s-au precizat
nodurile/muchiile unui subgraf complet dar care are 3
noduri, și numai 4p. dacă s-au precizat doar nodurile
unui subgraf conform cerinței.
3. Pentru răspuns corect
-acces la un câmp al unei înregistrări
-determinare a sumei cerute (*)
-corectitudine globală a secvenţei1)
6p.
1p.
4p.
1p.
(*) Se acordă câte 2p. pentru fiecare aspect specific
(algoritm de bază pentru determinarea sumei unei serii
de valori, valori suport însumate) conform cerinței.

Baremul · pagina 2

Ministerul Educaţiei
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 4
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 subprogram (*)
-determinare a valorilor 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, parametri de
ieșire) conform cerinței.
(**) Se acordă câte 1p. pentru fiecare aspect
(identificare a unor perechi de valori corespunzătoare
produsului cerut, algoritm de bază pentru
determinarea unei prime apariții a unei valori sau
perechi / a unei valori minime într-o serie, perechi de
valori suport verificate/obținute pentru determinarea lui
x minim, valori strict mai mari decât 1, ordine a
valorilor x și y, tratare caz 0) conform cerinței.
2. Pentru program corect
-declarare a unei variabile care să
memoreze un tablou bidimensional
-citire a datelor
-modificare a tabloului (*)
-afișare a unui tablou în formatul cerut
-declarare a variabilelor de tip simplu,
corectitudine globală a programului1)
10p.
1p.
1p.
6p.
1p.
1p.
(*) Se acordă câte 2p. pentru fiecare aspect specific
(algoritm de bază de deplasare spre stânga, în
memorie, a unor elemente de pe o linie, identificare a
unui element aflat pe diagonala principală, elemente
suport eliminate/păstrate) conform cerinței.
3. a) Pentru răspuns corect
-descriere coerentă a 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ă parcurge datele din fișier memorând
ultimele două valori citite (fie ele x, y), lungimea
secvenței curente de valori egale (fie ea ny) și
lungimea secvenței progresive curente (lgcrt); pentru
fiecare pereche (x,y) pentru care x=y se
incrementează ny; la finalul fiecărei secvențe de valori
egale (x≠y), dacă ny=x se actualizează corespunzător
lgcrt și, după caz, lungimea maximă cerută, iar altfel,
dacă ny<x, se reinițializează lgcrt cu 0. Pentru ultima
secvență de valori egale se actualizează datele la
final.
b) Pentru program corect
-operații cu fișiere: declarare, pregătire în
vederea citirii, citire din fișier
-determinare a valorii 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.