Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2022 – sesiunea iunie–iulie, 22 iunie 2022, varianta 1
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 1
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 1
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 valoarea expresiei C/C++ alăturate. 22/20*20/2
a. 0 b. 0.55 c. 10 d. 55
2. Variabilele x și valoare sunt declarate alăturat. Indicați o
instrucțiune de atribuire corectă din punctul de vedere sintactic.
struct produs
{ char denumire[50];
float cantitate, pret;
}x;
float valoare;
a. x=("apa minerala",10,2.5); b. x.produs.pret=2.5;
c. x.denumire[5]= "Borsec"; d. valoare=2*x.cantitate*x.pret;
3. La o sală de sport se organizează antrenamente pentru sporturi din mulțimea
{tenis, fotbal, volei, handbal, baschet}, astfel încât o persoană poate opta pentru un pachet de
antrenamente pentru două sau trei sporturi, dar nu poate alege fotbal și baschet în același pachet.
Utilizând metoda backtracking se generează toate posibilitățile unei persoane de a opta pentru un
pachet de antrenamente în cadrul sălii de sport. Două pachete sunt distincte dacă diferă prin cel puțin
un sport ales. Primele cinci soluții generate sunt, în această ordine:
{tenis, fotbal}, {tenis, fotbal, volei}, {tenis, fotbal, handbal}, {tenis, volei},
{tenis, volei, handbal}. Indicați soluția generată imediat după {fotbal, handbal}.
a. {volei, handbal} b. {fotbal, handbal, baschet}
c. {handbal, baschet} d. {volei, handbal, baschet}
4. Un graf neorientat cu 6 noduri, numerotate de la 1 la 6, are muchiile [1,2], [1,3], [2,3], [4,6].
Indicați numărul de componente conexe ale acestuia.
a. 1 b. 3 c. 5 d. 6
5. Într-un arbore cu rădăcină un nod se află pe nivelul n dacă lanțul elementar care are o extremitate în
nodul respectiv și cealaltă extremitate în rădăcina arborelui are lungimea n. Pe nivelul 0 se află un
singur nod (rădăcina). Un arbore cu rădăcină are 12 noduri, numerotate de la 1 la 12, și este
reprezentat prin vectorul de „tați” (2,4,2,0,4,4,x,6,x,x,y,y). Indicați un set de valori pe care le
pot avea x și y, știind că pe ultimul nivel există cinci noduri frunză și că un singur nod este numerotat cu
o valoare egală cu numărul său de descendenți direcți („fii”) de tip „frunză”.
a. x=11 y=12 b. x=8 y=3 c. x=3 y=8 d. x=3 y=3Subiectul · pagina 2
Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 1
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)
i2; k0
┌cât timp n≥i execută
│┌cât timp n%i=0 execută
││ kk+1
││ n[n/i]
│└■
│┌dacă i=2 atunci ii+1
││altfel ii+2
│└■
└■
scrie k
a. Scrieţi ce se afișează în urma executării algoritmului dacă se
citeşte numărul 56. (6p.)
b. Scrieţi două numere din intervalul [10,99] care pot fi citite, astfel
încât, pentru fiecare dintre acestea, în urma executării algoritmului, să
se afişeze valoarea 1. (6p.)
c. Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
d. Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind
adecvat a doua structură cât timp...execută cu o structură
repetitivă cu test final. (6p.)
2. Subprogramul f este definit alăturat. Scrieți două valori din intervalul
[2000,2025] pentru variabila întreagă x, astfel încât, pentru fiecare
dintre acestea, f(2022,x) să aibă valoarea 2022. (6p.)
int f(int a,int b)
{ if(a<=b) return a;
return f(a-1,b+1);
}
3. Variabilele s și id permit accesul la câte un șir de maximum 50 de caractere, șirul accesat prin id fiind
inițial vid, iar cel accesat prin s memorând, în această ordine, separate printr-un spațiu, prenumele și
numele unei persoane, fiecare fiind format numai din litere ale alfabetului englez. Scrieți o secvență de
instrucțiuni C/C++ astfel încât, în urma executării acesteia, șirul accesat prin id să memoreze numele
persoanei menționate, urmat de 2022. Declarați corespunzător eventualele alte variabile utilizate.
Exemplu: dacă șirul accesat prin variabila s este Ana Popescu
atunci șirul accesat prin variabila id este Popescu2022 (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul secventa are un singur parametru, n, prin care primeşte un număr natural (n∈[10,109))
în care nu există secvențe de mai mult de două cifre identice aflate pe poziții consecutive. Subprogramul
înlocuiește în n fiecare secvență 22 cu câte o secvență 20 și furnizează, prin același parametru, numărul
obținut. Dacă nu se înlocuiește nicio secvență, subprogramul furnizează numărul nemodificat.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=202233228, după apel n=202033208. (10p.)
2. Pentru prevenirea eroziunii la Marea Neagră, autoritățile au hotărât înnisiparea unei plaje. Plaja a fost
împărțită în parcele de formă pătrată cu latura de 1 metru, dispuse ca elementele unui tablou bidimensional,
reținându-se nivelul fiecărei parcele, măsurat în metri, de la nivelul mării. Înnisiparea se realizează doar pe
acele parcele care au nivelul strict mai mic decât al celei mai joase dintre parcelele vecine cu ea, adăugând
nisip, astfel încât cele două să aibă același nivel. Două parcele sunt vecine dacă au o latură comună.
Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,102], m și
n, apoi elementele unui tablou bidimensional cu m linii şi n coloane, numere naturale din intervalul
[1,10], reprezentând nivelurile parcelelor, în ordinea dispunerii acestora pe plajă.
Programul afișează pe ecran cantitatea totală de nisip adăugată,
măsurată în metri cubi.
Exemplu: pentru m=5, n=4 și tabloul alăturat, se vor înnisipa parcelele
marcate, pentru a fi aduse la nivelul parcelelor vecine
corespunzătoare, și se va afișa valoarea 7 (1+3+1+2).
5 3 4 6
7 5 9 3
6 8 3 9
4 5 2 3
3 1 4 4 (10p.)
3. Fișierul bac.txt conține numere naturale din intervalul [1,109], astfel: pe prima linie două numere, x
și y (x<y), iar pe a doua linie un șir de cel mult 106 numere, ordonate crescător. Numerele aflate pe
aceeași linie a fișierului sunt separate prin câte un spațiu.
Se cere să se afişeze pe ecran numărul de valori distincte din șirul aflat pe a doua linie a fișierului care
aparțin intervalului [x,y]. Proiectați un algoritm eficient din punctul de vedere al timpului de executare
și al memoriei utilizate.
Exemplu: dacă fişierul are conținutul
alăturat, pe ecran se afișează 6
2 9
1 1 1 2 2 3 5 5 5 5 6 6 7 8 10 10 12 15 21 21
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 1 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 1 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 3a 4b 5c 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a) Răspuns corect: 4 6p. b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere prime conform cerinței, și numai câte 2p. pentru fiecare dintre cele două numere prime dar care nu aparțin intervalului. c) Pentru program corect -declarare a variabilelor -citire a datelor -afișare a datelor -instrucțiune de decizie -instrucțiuni repetitive (*) -atribuiri -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile repetitive este conform cerinței. d) Pentru algoritm pseudocod corect -utilizare a unei structuri repetitive cu test final (*) -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 (repetă...până când, do...while, repetă...cât timp, execută...până când, execută...cât timp etc.). (**) Se acordă numai 2p. dacă doar unul dintre aspectele specifice (condiție de echivalență pentru prima iterație, expresie logică pentru test final) este conform cerinței. 2. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinței (oricare dintre numerele 2022, 2023, 2024, 2025). 3. Pentru răspuns corect 6p. Se acordă câte 2p. pentru fiecare aspect (identificare a unui cuvânt în cadrul unui șir, copiere a unui șir într-un alt șir/concatenare a două șiruri, secvențe suport copiate în șirul destinație) conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Centrul Național de Politici și Evaluare în Educație Probă scrisă la informatică Varianta 1 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 (*) -determinare a valorii cerute (**) -furnizare a rezultatului prin parametrul indicat -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-ieșire) conform cerinței. (**) Se acordă câte 1p. pentru fiecare aspect (identificare a unei cifre, identificare a unei perechi de cifre de pe poziții consecutive, înlocuire a unei cifre, secvențe suport înlocuite, ordine a cifrelor, secvențe suport păstrate - inclusiv cifrele nule de la finalul numărului) conform cerinței. 2. Pentru program corect -declarare a unei variabile care să memoreze un tablou bidimensional -citire a elementelor tabloului -determinare a valorii cerute (*) -afișare a datelor -declarare a variabilelor simple, citire a datelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a două parcele vecine pentru cel puțin unul dintre cazurile de plasare a acestora, algoritm de bază pentru determinarea unei valori minime dintr-o serie de maximum patru, parcele vecine suport pentru determinarea minimului - pentru toate cazurile particulare, identificare a unei parcele care se înnisipează, algoritm de bază pentru însumarea unei serii de valori, valori suport însumate) 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. Se memorează ultimele două valori citite, în această ordine, ant și crt, precum și numărul cerut, nr. O soluţie posibilă inițializează numărul ant cu 0 și parcurge datele din fișier citind valoarea curentă crt (eventual cât timp crt≤y), incrementând numărul nr pentru fiecare valoare distinctă din șir (crt≠ant) din intervalul cerut (crt≥x și crt≤y); valoarea ant se actualizează la fiecare pas. 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.