Textul subiectului și baremului
Simulare BAC Informatică Mate-Info C/C++ 2023 – 29 martie 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 originalSubiectul · pagina 1
Ministerul Educaţiei
Centrul Naţional de Politici și Evaluare în Educație
Probă scrisă la informatică Simulare
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++
Simulare
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 numerele pe care le pot memora variabilele întregi x şi y, astfel încât
valoarea expresiei C/C++ alăturate să fie 23.
x/2+y%3
a. x=8 şi y=23 b. x=20 şi y=39 c. x=23 şi y=66 d. x=43 şi y=20
2. Subprogramul f este definit alăturat.
Indicați valoarea lui f(2023).
int f(int n)
{ if(n==0) return 0;
if(n%10==2) return f(n/10)*10+3;
return f(n/10)*10+2;
}
a. 2303 b. 3232 c. 3332 d. 5355
3. Expresiile alăturate au ca valori trei numere naturale reprezentând, în această
ordine, următoarele informații memorate pentru o motocicletă: anul fabricației și
dimensiuni specifice (garda la sol și lungimea). Indicați o declarare
corespunzătoare a variabilei m.
m.an
m.dm.garda
m.dm.lungime
a. struct
{ int an;
struct{int garda, lungime;}dm;
}m;
b. struct
{ int m.an;
struct{int garda, lungime;}m.dm;
};
c. struct
{ int an, dm.garda, dm.lungime;
}m;
d. struct m
{ int an, dm (garda,lungime);
};
4. Utilizând metoda backtracking, se generează toate pachetele formate din câte 3 tipuri distincte de ceai din
mulţimea {matcha, mate, moringa, oolong, tulsi}. Două amestecuri sunt distincte dacă diferă prin cel
puțin un tip de ceai. Primele patru soluţii obţinute sunt, în această ordine: (matcha, mate, moringa),
(matcha, mate, oolong), (matcha, mate, tulsi) şi (matcha, moringa, oolong). Indicați succesiunea
care NU se obține, prin această metodă, în ordinea dată.
a. (matcha, moringa, tulsi) b. (moringa, oolong, tulsi)
c. (mate, moringa, oolong) d. (oolong, tulsi, mate)
5. Într-un magazin sunt 8 raioane, distribuite în trei zone importante, în fiecare zonă fiind un număr par,
nenul, de raioane. În scopul fluidificării deplasării clienților se marchează unele culoare, astfel încât
fiecare culoar să conecteze două raioane, iar deplasarea pe el să se facă într-un singur sens.
Se realizează o hartă, sub forma unui graf orientat, în care vârfurile reprezintă raioanele din magazin,
iar arcele reprezintă culoarele marcate. Indicați numărul maxim de culoare care se pot marca, astfel
încât graful să aibă trei componente tare conexe, fiecare componentă fiind reprezentarea pe hartă a
câte uneia dintre cele trei zone importante din magazin.
a. 20 b. 28 c. 36 d. 56Subiectul · pagina 2
Ministerul Educaţiei
Centrul Naţional de Politici și Evaluare în Educație
Probă scrisă la informatică Simulare
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)
x5
┌repetă
│ cnn; n0; p1
│┌repetă
││ ccn%10
││┌dacă c=x atunci c5-c
││└■
││ nc*p+n; cn[cn/10]; pp*10
│└până când cn=0
│ xx-1
└până când x=0
scrie n
a. Scrieţi valoarea afişată dacă se citește numărul 5174. (6p.)
b. Scrieţi trei numere impare, cu cifre distincte, din intervalul
[102,104) care pot fi citite astfel încât, în urma executării
algoritmului, pentru fiecare dintre acestea, să se afișeze
valoarea 34. (6p.)
c. Scrieţi programul C/C++ corespunzător algoritmului dat.
(10p.)
d. Scrieţi în pseudocod un algoritm, echivalent cu cel dat,
înlocuind prima structură repetă...până când cu o
structură de tip pentru...execută. (6p.)
2. Un arbore cu 7 noduri, numerotate de la 1 la 7, este reprezentat prin vectorul de „tați” (4,1,1,0,7,4,4).
Scrieți trei muchii care i se pot adăuga, astfel încât graful obținut să fie eulerian. (6p.)
3. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii şi 5
coloane, numerotate de la 1 la 5, având iniţial toate elementele nule.
Fără a utiliza alte variabile decât cele menționate, 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,
variabila a să memoreze tabloul alăturat.
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
.................. (6p.)
4 3 2 1 0
4 3 2 1 1
4 3 2 2 2
4 3 3 3 3
4 4 4 4 4
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul NrImp are trei parametri:
• x și y, prin care primeşte câte un număr natural (2≤x<y≤109)
• nr, prin care furnizează numărul valorilor naturale din intervalul [x,y] cu trei divizori pozitivi impari.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă x=4 și y=50, după apel nr=6 (pentru valorile 9, 18, 25, 36, 49, 50). (10p.)
2. Într-un text de cel mult 100 de caractere cuvintele sunt separate prin câte un spațiu și sunt formate din litere
mari ale alfabetului englez, iar dacă sunt scrise prescurtat sunt urmate de caracterul . (punct). Textul
reprezintă denumirea științifică a unei păsări și doar cuvintele din mulțimea {FAMILIA, GENUL, SPECIA},
specifice sistemului de clasificare a organismelor, sunt mereu prescurtate, prin eliminarea ultimelor lor litere.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul precizat și construiește în memorie,
apoi afișează pe ecran denumirea științifică, în care pentru cuvintele specifice sistemului de clasificare a
organismelor se păstrează doar primele trei litere, scrise cu litere mici, și urmate de punct, ca în exemplu.
Exemplu: pentru textul FAMIL. PHASIANIDAE GEN. MELEAGRIS SP. GALLOPAVO
sau pentru textul FAM. PHASIANIDAE G. MELEAGRIS SPECI. GALLOPAVO
se obține fam. PHASIANIDAE gen. MELEAGRIS spe. GALLOPAVO (10p.)
3. Pentru a studia un metal, s-a urmărit comportamentul său într-o succesiune de pași, la fiecare pas
metalul fiind supus unei anumite temperaturi. Pașii sunt numerotați cu valori naturale consecutive,
începând de la 1. Un pas se numește reprezentativ dacă la niciunul dintre pașii anteriori nu este
utilizată o temperatură strict mai mare decât la acest pas. Dacă există o secvență de pași consecutivi la
care se utilizează aceeași temperatură, se consideră reprezentativ doar primul pas din secvență.
Fișierul bac.txt conține cel mult 106 numere naturale din intervalul [0,104], separate prin câte un
spațiu, reprezentând temperaturile la care este supus metalul, în ordinea pașilor corespunzători. Se cere
să se afișeze pe ecran, separați prin câte un spațiu, pașii reprezentativi pentru datele din fișier. Proiectați
un algoritm eficient din punctul de vedere al timpului de executare și al spațiului de memorie utilizat.
Exemplu: dacă fișierul conține numerele 7 4 9 10 10 10 3 9 2 10 10 8 2 30
se afișează pe ecran 1 3 4 10 14
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.)2Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei Centrul Naţional de Politici și Evaluare în Educație Probă scrisă la informatică Simulare 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) Simulare 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 2b 3a 4d 5c 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 474 6p. b. Pentru răspuns corect 6p. Se acordă câte 2p. pentru fiecare dintre cele trei numere conform cerinței (oricare dintre valorile 521, 531, 5021, 5031). 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ă numai una dintre instrucțiunile repetitive este conform cerinței. d. Pentru algoritm pseudocod corect -utilizare a unei structuri repetitive de tip pentru...execută (*) -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 (pentru...execută, for...do etc.). (**) Se acordă câte 1p. pentru fiecare aspect specific (valoare de inițializare a contorului, valoare finală a contorului, doar actualizare implicită a contorului) conform cerinței. 2. Pentru rezolvare corectă 6p. Se acordă numai 2p. dacă s-a adăugat cel puțin o muchie cu extremități cu grad inițial impar, dar fără obținerea unui graf eulerian, și numai 4p. dacă s-a obținut un graf eulerian dar numărul de muchii adăugate nu este conform cerinței. 3. Pentru rezolvare corectă -acces la un element al tabloului -atribuire a valorilor indicate conform cerinței (*) -corectitudine globală a secvenței1) 6p. 1p. 4p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (valori ordonate descrescător pe linii, valori ordonate crescător pe coloane, poziționare față de diagonala secundară, corespondență elemente suport-valori) conform cerinței. SUBIECTUL al III - lea (30 de puncte) 1. Pentru subprogram corect -antet al subprogramului (*) -determinare a numărului cerut (**) -declarare a 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 1p. pentru fiecare aspect (algoritm de bază pentru numărarea unui șir de valori, identificare a unui divizor, identificare a unui număr impar, divizori suport numărați, identificare a unui număr cu trei divizori impari, valori suport din interval numărate) conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Centrul Naţional de Politici și Evaluare în Educație Probă scrisă la informatică Simulare 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 cerut (*) -afişare a datelor -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect (identificare a unui cuvânt, identificare a unui cuvânt complet/prescurtat, identificare a cuvântului corespunzător celui prescurtat, înlocuire a unui subșir cu un alt subșir, cuvinte suport înlocuite/păstrate, construire în memorie ca șir de caractere) conform cerinței. 3. a. Pentru răspuns corect -coerenţă a descrierii algoritmului (*) -justificare a unor elemente 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 din fișier, valoarea ultimei temperaturi reprezentative (tr) şi poziţia acesteia (ptr), pe baza temperaturii curente (x) și a poziției acesteia (px), care se actualizează la fiecare pas. Poziția curentă px se afișează doar dacă se întâlnește o temperatură mai mare decât tr (x>tr), sau dacă temperatura curentă este egală cu tr (x=tr), dar cele două valori nu sunt pe poziții consecutive în șir (px>ptr+1); valoarea lui ptr se actualizează pentru fiecare x≥tr (ptrpx), iar valoarea lui tr se actualizează pentru fiecare x>tr (trx). 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.