Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2023 – sesiunea specială, 17 mai 2023, varianta 6
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 6
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 6
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. Variabilele întregi m și n memorează câte un număr natural. Indicați expresia C/C++ care are valoarea 1
dacă și numai dacă fiecare dintre numerele memorate în variabilele m și n este par.
a. (m+n)%2==0 b. (m-n)%2==0 c. m%2+n%2==0 d. m%2-n%2==0
2. Subprogramul f este definit alăturat. Indicați
valoarea f(35,3).
int f(int n,int k)
{ if(n==0 || k==0) return 0;
return n%k+10*f(n/k,k);
}
a. 1022 b. 355 c. 102 d. 33
3. Variabila p, declarată alăturat, memorează dimensiunile unui paralelipiped
dreptunghic: lungimea, lățimea, respectiv înălțimea.
struct paralelipiped
{ float lg,lt,h;
}p;
Volumul paralelipipedului este egal cu produsul celor trei dimensiuni ale sale. Indicați o instrucțiune prin
care i se atribuie variabilei reale v valoarea volumului paralelipipedului corespunzător variabilei p.
a. v=lg*lt*h; b. v=lg.p*lt.p*h.p; c. v=p(lg*lt*h); d. v=p.lg*p.lt*p.h;
4. Utilizând metoda bactracking se generează toate șirurile de 5 litere distincte din mulțimea {A, M, U, R, G},
astfel încât în fiecare șir litera R precede literele A și M. Primele cinci soluții generate sunt, în această
ordine: URAMG, URAGM, URMAG, URMGA, URGAM. Indicați soluția generată imediat după GURMA.
a. GARUM b. GRAMU c. GRAUM d. GRUAM
5. Într-o zonă sunt 23 de obiective turistice, numerotate de la 1 la 23; zona este reprezentată ca un graf orientat
în care vârfurile corespund acestor obiective, iar arcele sunt stabilite în funcție de modalitatea de deplasare
între două obiective, astfel: de la fiecare obiectiv numerotat cu i (i∈[1,23]) se poate merge direct doar la
obiectivul numerotat cu 2*i, dacă acesta există, sau doar la obiectivul numerotat cu i-1, în caz contrar.
Indicați numărul maxim de vârfuri ale unui drum elementar în acest graf, cu extremitatea inițială 1.
a. 5 b. 11 c. 16 d. 21
SUBIECTUL al II-lea (40 de puncte)
1. Algoritmul alăturat este reprezentat în pseudocod. citește n
(număr natural nenul)
┌pentru i1,n execută
│┌pentru j1,n execută
││┌dacă j≤i atunci
│││ scrie 2
│││altfel
│││ scrie 3
││└■
│└■
└■
a. Scrieți ce se afișează în urma executării algoritmului, dacă se citește
numărul 3. (6p.)
b. Scrieți două numere care pot fi citite, astfel încât, în urma executării
algoritmului, pentru fiecare dintre acestea, în total, numărul de cifre 2
afișate să fie în intervalul [20,50]. (6p.)
c. Scrieți programul C/C++ corespunzător algoritmului dat. (10p.)
d. Scrieți în pseudocod un algoritm, echivalent cu cel dat, înlocuind una
dintre structurile pentru...execută cu o structură de tip
cât timp...execută. (6p.)Subiectul · pagina 2
Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 6
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. Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin vectorul de „tați"
(0,1,1,2,2,4,5,1). Enumerați toți descendenții nodului numerotat cu 2. (6p.)
3. Un șir de caractere a este numit prefix al unui șir de caractere b dacă este identic cu b sau dacă b se
obține din a prin adăugarea la dreapta a unor alte caractere.
Variabila k este de tip întreg, iar variabila s permite accesul la un șir de cel mult 20 de caractere. Scrieți
secvența de instrucțiuni de mai jos, înlocuind punctele de suspensie astfel încât, în urma executării secvenței
obținute, să se afișeze pe ecran, în ordinea descrescătoare a lungimii, separate prin câte un spațiu, toate
prefixele șirului accesat prin variabila s, fiecare încheindu-se cu prima literă a șirului s, ca în exemplu. Declarați
eventualele alte variabile utilizate.
Exemplu: pentru șirul elemente se afișează: elemente eleme ele e
for(k=strlen(s)-1;k>=0;k--)
{..................} (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul Putere are trei parametri:
• n, prin care primește un număr natural (n∈[2,109]);
• x și p, prin care furnizează două numere naturale cu proprietatea că n=xp, iar x este cel mai mic număr
cu această proprietate.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=16 atunci, după apel, x=2 și p=4, dacă n=216 atunci, după apel, x=6 și p=3, iar dacă
n=12 atunci, după apel, x=12 și p=1. (10p.)
2. La o expoziție sunt prezentate mai multe tipuri de flori, fiecare având un anumit cod. Zona de expunere
este organizată pe n rânduri, fiecare având câte n parcele de dimensiune egală. Pe primul rând sunt
expuse n tipuri de flori distincte, fiecare parcelă conținând flori de un anumit tip. Celelalte parcele sunt
ocupate astfel:
• toate parcelele aflate în dreapta diagonalei secundare a zonei de expunere sunt ocupate de gazon;
• fiecare parcelă, aflată pe diagonala secundară a zonei de expunere sau în stânga acestei diagonale, conține
flori cu un cod de cel mult două cifre, obținut din ultimele două cifre ale sumei codurilor florilor aflate în două
parcele de pe rândul anterior, și anume cea de pe aceeași coloană, respectiv cea de pe coloana din dreapta
sa; dacă prima dintre cifrele codului obținut este 0, ea este ignorată, ca în exemplu.
Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[2,20]), apoi n numere
naturale distincte din intervalul [0,102), reprezentând, în această ordine, de la stânga la dreapta, codurile
florilor din parcelele aflate pe primul rând al zonei de expunere; gazonul are codul -1. Programul
construiește în memorie un tablou bidimensional cu n linii și n coloane, în care fiecare linie corespunde
unui rând de parcele și fiecare element al liniei corespunde unei parcele, în ordinea acestora, și
memorează codul plantelor (flori sau gazon) plasate în acea parcelă.
Programul 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: dacă se citesc numerele n=5, apoi 90, 10, 4, 27, 30 se obține
tabloul alăturat. (10p.)
90 10 4 27 30
0 14 31 57 -1
14 45 88 -1 -1
59 33 -1 -1 -1
92 -1 -1 -1 -1
3. Intervalul [x,y] se numește p-interval pentru un șir de valori întregi, dacă oricare dintre primii p termeni
ai șirului aparține intervalului, iar numărul de valori întregi distincte din interval este minim.
Exemplu: pentru șirul 2, 7, -1, 8, 3, 10 există [2,2] ca 1-interval, [-1,8] ca 4-interval și 5-interval etc.
Fișierul bac.in conține un șir de cel mult 106 numere întregi din intervalul [-109,109], separate prin
câte un spațiu.
Se cere să se afișeze pe ecran cea mai mică și cea mai mare valoare a lui p (p≥2) cu proprietatea că
(p-1)-interval este identic cu p-interval pentru șirul aflat în fișier. Valorile afișate pot fi egale, iar dacă nu
există nicio astfel de valoare, pe ecran se afișează mesajul nu exista. 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 7 1 8 3 10 6 -3 -2 13, se afișează pe ecran 5 9
(intervale conform cerinței se obțin pentru valorile 5, 7 și 9 ale lui p),
iar dacă fișierul conține numerele 2 7 1 0 8 10 -3 13, se afișează pe ecran nu exista
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 6 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 6 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 2a 3d 4b 5c 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 233223222 6p. Se acordă numai 1p. dacă s-a scris doar prima cifră corect, numai 2p. dacă s-au scris doar primele trei cifre corect, numai 4p. dacă s-au scris doar primele șase cifre corect sau dacă, în plus față de cifrele cerute, s-au scris și alte caractere. b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două numere conform cerinţei (oricare dintre numerele 6,7,8,9). 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 - corectitudine globală a programului1) 10p. 1p. 1p. 1p. 4p. 2p. 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 utilizată (*) - 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. Răspuns corect: 4, 5, 6, 7 6p. Se acordă numai 3p. dacă s-au precizat conform cerinței doar descendenții direcți (fiii) nodului indicat. 3. Pentru rezolvare corectă -prefixe determinate, conform cerinței (*) -afișare a unor șiruri -corectitudine globală a secvenței1) 6p. 4p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui prefix, acces la prima literă a unui prefix, acces la ultima literă a unui prefix, prefixe suport determinate) conform cerinței. SUBIECTUL al III - lea (30 de puncte) 1. Pentru subprogram corect - antet al subprogramului, conform cerinței (*) - numere determinate, conform cerinței (**) - variabile locale declarate conform cerinței, 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ă numai 3p. dacă s-a determinat o pereche (x,p) cu proprietatea cerută, dar x nu este cel mai mic număr cu această proprietate.
Baremul · pagina 2
Ministerul Educaţiei Centrul Naţional de Politici şi Evaluare în Educaţie Probă scrisă la informatică Varianta 6 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 - variabilă de tip tablou bidimensional, declarată conform cerinței - date citite, conform cerinței - memorare a valorilor elementelor, conform cerinței (*) - date afişate în formatul indicat, 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 specific (acces la cel puțin un element vecin pe linia anterioară, acces la cel puțin un element vecin pe coloana din dreapta, încadrare a elementelor în dimensiunile tabelei, valori și elemente suport pe prima linie, valori și elemente suport aflate pe diagonala secundară sau în stânga acesteia, valori și elemente suport aflate în dreapta diagonalei secundare), 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, care utilizează eficient memoria. O soluţie posibilă determină, pe măsura citirii datelor, valorile minime și maxime curente (minc, maxc, inițializate cu 109+1, respectiv cu -109-1) dintre cele citite, poziția curentă în șir (p), precum și valorile cerute pmin și pmax. Pentru fiecare valoare citită (x), p este incrementat; dacă x∈[minc,maxc], atunci se actualizează, după caz, pmin (la prima apariție a unui astfel de caz) sau pmax (la fiecare apariție a unui astfel de caz), care primesc valoarea curentă a lui p; dacă x∉[minc,maxc], se actualizează, după caz, minc (dacă x<minc) sau maxc (dacă x>maxc). Valorile cerute sunt pmin și pmax. b. Pentru program corect - operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - valori determinate, 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.