Sari la subiecte
Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Mate-Info C/C++ 2022 – sesiunea august–septembrie, 18 august 2022, varianta 5

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 5
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 5
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. Variabila x este de tip întreg. Indicați o expresie care are valoarea 1 dacă și
numai dacă expresia C/C++ alăturată are valoarea 1.
x>=3 && x<10
a. !(x<3 && x>=10) b. !(x<3 || x>=10)
c. x<3 && !(x>=10) d. !(x<3) || x>=10
2. Subprogramul f este definit incomplet, alăturat. Indicați
o expresie cu care pot fi înlocuite punctele de suspensie
pentru ca f(n,3) să aibă valoarea 1 pentru orice număr
prim n (n∈[2,104]) și valoarea 0 în caz contrar.
int f(int x, int y)
{ if(x!=2 && x%2==0) return 0;
if(y*y>x) return 1;
if(x%y==0) return 0;
return f(x,.........);
}
a. y+2 b. y-2 c. y*2 d. y/2
3. Utilizând metoda backtracking, se generează toate posibilitățile de a forma platouri de câte trei fructe
distincte din mulţimea {măr, gutuie, prună, caisă, piersică}, astfel încât pe același platou nu se
află o gutuie și o piersică simultan. Două platouri sunt distincte dacă ele conțin cel puțin un fruct diferit.
Primele patru soluţii generate sunt, în această ordine, (măr, gutuie, prună), (măr, gutuie, caisă),
(măr, prună, caisă), (măr, prună, piersică).
Indicați soluţia generată imediat după (gutuie, prună, caisă).
a. (caisă, piersică, măr) b. (gutuie, prună, piersică)
c. (mar, caisă, piersică) d. (prună, caisă, piersică)
4. Variabila j este de tip întreg, iar variabila A memorează un tablou bidimensional cu 100 de linii și 100
de coloane, numerotate de la 0 la 99. Indicați valoarea variabilei j, dacă elementul A[20][j] se află
pe diagonala secundară a tabloului.
a. 20 b. 49 c. 79 d. 80
5. Un graf neorientat are 7 noduri, numerotate de la 1 la 7, și 8 muchii, dintre care șase sunt: [1,2],
[2,4], [2,7], [3,4], [4,5], [4,6]. Știind că unul dintre lanțurile elementare care au lungimea
maximă este 1, 2, 7, 5, 4, 6, indicați care ar putea fi celelalte două muchii ale grafului.
a. [1,4] și [4,7] b. [1,4] și [5,7] c. [2,5] și [4,7] d. [3,6] și [5,7]

Subiectul · pagina 2

Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
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. citeşte m,n
(numere naturale nenule, m<n)
x1
┌cât timp x=1 execută
│ xm; yn; nn-1
│┌cât timp x≠y execută
││┌dacă x>y atunci xx-y
│││altfel yy-x
││└■
│└■
└■
scrie n+1
a. Scrieţi ce se afișează în urma executării algoritmului dacă se citesc,
în această ordine, valorile 21 și 47. (6p.)
b. Dacă pentru variabila m se citeşte numărul 5, scrieţi două valori care pot
fi citite pentru variabila n astfel încât, în urma executării algoritmului,
pentru fiecare dintre acestea, valoarea afişată să fie 10. (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 prima structură cât timp...execută cu o structură
repetitivă cu test final. (6p.)
2. Un arbore cu 9 noduri, numerotate de la 1 la 9, are muchiile [1,8], [2,3], [2,5], [2,7], [4,5],
[5,6], [5,8], [8,9]. Scrieți două noduri care pot fi alese drept rădăcină, astfel încât nodul 5 să aibă
doi “frați”. (6p.)
3. Variabila x, declarată alăturat, memorează simultan un an
calendaristic și temperatura medie a aerului, măsurată în grade
Celsius, înregistrată în București în anul respectiv.
struct meteo
{ int an, temperatura;
}x;
Scrieţi o secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran mesajul CALDUROS
dacă temperatura menționată a fost strict mai mare decât 11oC, mesajul RACOROS dacă temperatura
menționată a fost strict mai mică decât 10oC, sau mesajul NORMAL în orice alt caz. (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul schimb are trei parametri:
• n şi x, prin care primeşte câte un număr natural (n∈[0,108], x∈[1,9]);
• p, prin care primește un număr natural reprezentând poziția unei cifre a numărului n (0≤p). Pozițiile
cifrelor sunt numerotate de la dreapta la stânga, astfel: cifra unităților este pe poziția 0, cifra zecilor
este pe poziția 1 ș.a.m.d.
Subprogramul transformă numărul n, înlocuind cifra de pe poziția p cu cifra x, și furnizează numărul
obținut tot prin parametrul n. Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=12587, x=6 și p=3, după apel, n=16587. (10p.)
2. Se consideră o vocală oarecare a alfabetului englez, notată cu v, și o consoană oarecare a alfabetului englez,
notată cu c. Litera v se numeşte vocală prietenă a lui c dacă în şirul literelor alfabetului englez, ordonat
lexicografic, v îl precede pe c, iar între v și c nu există nicio vocală. Se consideră vocale literele a, e, i, o, u.
Exemplu: e este vocală prietenă pentru consoanele f, g și h, dar nu este vocală prietenă pentru
consoanele d și j.
Un elev vrea să transmită unui prieten o parolă, codificată. Parola este formată dintr-un singur cuvânt de
cel mult 50 de caractere, litere mici ale alfabetului englez, cel puțin una fiind consoană. Codificarea se
face prin înlocuirea fiecărei consoane cu vocala sa prietenă, ca în exemplu.
Scrieţi un program C/C++ care citeşte de la tastatură un cuvânt, reprezentând o parolă de tipul precizat şi
determină, în memorie, forma codificată a acesteia. Programul afişează pe ecran parola codificată obţinută.
Exemplu: pentru parola rame se afişează oaie, iar pentru parola sport se afișează ooooo (10p.)
3. Numim secvență paritară a unui șir de numere naturale un subșir al acestuia, format din termeni cu
aceeași paritate, aflați pe poziții consecutive în șirul dat. Lungimea secvenței este egală cu numărul de
termeni ai acesteia.
Fișierul bac.txt conține un șir de cel puțin două și cel mult 106 numere naturale din intervalul [0, 109].
Numerele sunt separate prin câte un spațiu, iar în șir există cel puțin doi termeni cu aceeași paritate pe
poziții consecutive.
Se cere să se afişeze pe ecran numărul secvențelor paritare de lungime maximă din șirul aflat în fișier,
precum și această lungime maximă. Numerele afişate sunt separate printr-un spațiu. Proiectați un
algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate.
Exemplu: dacă fişierul conţine numerele
2 3 5 1 7 9 8 4 4 11 15 17 21 11 6 11 15 17 21 11 6 5 2 6 4 0 16
atunci pe ecran se afișează valorile 4 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ă Varianta 5
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 5
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 2a 3d 4c 5b 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a) Răspuns corect: 45 6p.
b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două
numere conform cerinței (orice număr natural din
intervalul [10,14]).
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 (*)
-expresie logică pentru test final î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 (repetă...până când, do...while,
repetă...cât timp, execută...cât timp etc.).
2. Răspuns corect: 2, 8 6p. Se acordă câte 3p. pentru fiecare nod conform
cerinței.
3. Pentru rezolvare corectă
-accesul la un câmp al unei înregistrări
-tratare a tuturor cazurilor, conform
cerinței (*)
-corectitudinea globală a secvenţei1)
6p.
1p.
4p.
1p.
(*) Se acordă numai 2p. dacă a fost tratat conform
cerinței un singur caz, numai 3p. dacă au fost tratate
conform cerinței numai două cazuri.
SUBIECTUL al III - lea (30 de puncte)
1. Pentru subprogram corect
-antet subprogram (*)
-determinare a valorii 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ă, parametri de intrare, parametru de
ieșire) conform cerinței.
(**) Se acordă câte 2p. pentru fiecare aspect (acces la
o cifră a unui număr, ordine a cifrelor numărului
obținut, cifre suport înlocuite/păstrate - inclusiv a
cifrelor nule de la finalul numărului) conform cerinței.

Baremul · pagina 2

Ministerul Educaţiei
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
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 un șir de caractere
-citire a datelor
-determinare a șirului conform formei
codificate (*)
-afișare a datelor
-declarare a variabilelor de tip simplu,
corectitudine globală a programului1)
10p.
1p.
1p.
6p.
1p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect specific
(acces la un caracter al unui șir, identificare a unei
vocale/consoane, algoritm de bază pentru
determinarea primei valori cu o anumită proprietate
dintr-o serie/a unei vocale prietene, înlocuire a unui
caracter într-un șir, caractere suport înlocuite/păstrate,
transformare în memorie) 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 și
memorează în variabilele x și y ultimii doi termeni citiți;
dacă x%2≠y%2, inițializează lungimea secvenței
curente, iar dacă x%2=y%2, incrementează lungimea
secvenței curente și actualizează, după caz, lungimea
maximă și incrementează sau inițializează numărul
secvențelor cerute.
b) Pentru program corect
-operații cu fișiere: declarare, pregătire în
vederea citirii, citire din fișier
-determinare a valorilor 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.