Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2024 – sesiunea specială, 23 mai 2024, 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 originalSubiectul · 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 2024
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 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 x şi y sunt de tip real. Indicați o expresie C/C++ echivalentă
cu cea alăturată.
!(x>25 || y<6)
a. x<=25 && y>=6 b. x<=25 || y>=6
c. x<=25 && y<6 d. x<=25 || y<6
2. Subprogramul f este definit alăturat.
Indicați ce se afișează în urma apelului de
mai jos.
f(9);
void f(int x)
{ if(x%5!=0)
{ x=x*5/2; f(x);}
else x=x-1;
cout<<x; | printf("%d",x);
}
a. 225554 b. 545522 c. 55109 d. 92255
3. Utilizând metoda backtracking, se generează, respectând ordinea enumerării elementelor din mulțimile
precizate mai jos, toate numerele de mașină care cuprind câte trei elemente constitutive, separate prin
cratimă:
• indicativul județului, din mulțimea {B, BR, HD, MM, SV, TL};
• un număr, format din două cifre din mulțimea {2, 4, 6, 8}, în ordine strict crescătoare;
• trei litere mari distincte din mulțimea {A, B, C}, cea din mijloc fiind A.
Primele șapte numere generate sunt, în această ordine: B-24-BAC, B-24-CAB, B-26-BAC, B-26-CAB,
B-28-BAC, B-28-CAB, B-46-BAC.
Indicați două soluții, prima generată imediat înainte de soluția SV-68-CAB, iar a doua generată imediat
după soluția SV-68-CAB.
a. MM-68-CAB, SV-86-BAC b. SV-46-CAB, TL-24-BAC
c. SV-48-BAC, SV-68-BAC d. SV-68-BAC, TL-24-BAC
4. Variabila t, declarată alăturat, memorează, pentru un
telefon, următoarele date: tipul sistemului de operare
(litera A pentru Android și litera W pentru Windows),
prețul produsului, precum și data achiziționării (ziua,
luna și anul). Indicați o expresie C/C++ prin care se
accesează anul achiziționării telefonului.
struct data
{ int zi,luna,an;
};
struct telefon
{ char sistem;
float pret;
struct data achizitionare;
} t;
a. telefon.an b. t.data.an
c. telefon.achizitionare.data.an d. t.achizitionare.an
5. Oricare dintre cele 5 vârfuri ale unui graf orientat are proprietatea că suma dintre gradul său extern și
gradul său intern este 4. Indicați lungimea maximă a unui drum elementar în acest graf.
a. 10 b. 8 c. 4 d. 3Subiectul · 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, n≥2)
i1
┌cât timp i≤n execută
│ mi
│┌cât timp m%2=0 execută
││ m[m/2]
│└■
│┌dacă m≠i atunci
││ scrie m,’ ’
│└■
│ ii+1
└■
a. Scrieţi ce se afișează dacă se citeşte numărul 10. (6p.)
b. Scrieţi două valori distincte care pot fi citite astfel încât, în urma
executării algoritmului, pentru fiecare dintre acestea, numărul de valori
egale cu 1 afișate să fie 4. (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ă repetitivă cât timp...execută cu o
structură de tip pentru...execută. (6p.)
2. Un graf neorientat cu 6 noduri, numerotate de la 1 la 6, are muchiile [1,2], [2,3], [2,4], [2,5], [4,5],
[4,6], [5,6]. Scrieţi listele de adiacenţă ale unui graf parţial al său care să fie conex și fără cicluri. (6p.)
3. Variabilele c și i sunt de tip întreg, iar variabila s permite memorarea unui șir de cel mult 20 de caractere.
Se citesc de la tastatură 10 cuvinte, formate din litere mici ale alfabetului englez și separate prin Enter.
Scrieți secvența de mai jos, înlocuind punctele de suspensie astfel încât, în urma executării
secvenței obținute, variabila c să memoreze valoarea 1 dacă există printre cuvintele citite cel puțin
unul format din două litere și care să conțină o vocală și o consoană, sau valoarea 0 altfel. Se
consideră vocale literele a, e, i, o, u.
Exemplu: dacă se citesc cuvintele alăturate, variabila c are valoarea 1.
daca
au
plecat
el
nu
primeste
si
inghetata
de
fragi
c=.....;
for(i=1;i<=10;i++) { cin>>s; | scanf("%s",s);
............
} (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. La un laborator sunt studiate aglomerările de fulgi de nea formate din câte nouă cristale de patru tipuri diferite
date (notate cu 1, 2, 3 sau 4), astfel încât din fiecare tip să existe cel puțin câte un cristal. O astfel de
aglomerare de fulgi a fost reprezentată printr-un număr natural, în care fiecare cifră reprezintă tipul unui cristal.
Subprogramul fulg are un parametru, n, prin care primește un număr natural (n∈[0,109)).
Subprogramul returnează valoarea 1, dacă prin n este reprezentată o aglomerare de fulgi de nea dintre
cele studiate, sau 0 în caz contrar. Scrieți în C/C++ definiția completă a subprogramului.
Exemplu: dacă n=112243413 subprogramul returnează 1, iar dacă n=12314 sau n=112253513 sau
n=112243457 sau n=111122223, subprogramul returnează 0. (10p.)
2. Fiind date două numere naturale a și b, numim valoare generată de a și b un număr obținut din a prin
alipirea la stânga sau la dreapta sa a cifrelor lui b, în ordinea în care apar în acesta.
Exemplu: dacă a=123 și b=45, se pot obține două numere generate de acestea: 12345 și 45123.
Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale din intervalul [2,50], m și n,
şi construiește în memorie un tablou bidimensional cu m linii, numerotate de la 1 la m, și n coloane,
numerotate de la 1 la n, în care fiecare element este egal cu cea mai mică valoare generată de numerele
de ordine ale liniei, respectiv coloanei pe care se află.
Programul afişează pe ecran tabloul obţinut, fiecare linie a tabloului pe câte o
linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Exemplu: pentru m=5 și n=4 se obține tabloul alăturat.
(10p.)
11 12 13 14
12 22 23 24
13 23 33 34
14 24 34 44
15 25 35 45
3. Fişierul numere.in conţine un şir de cel mult 106 numere naturale din intervalul [0,99]. Numerele din
fişier sunt separate prin câte un spaţiu.
Se cere să se determine primul şi ultimul număr din şir care conţin cea mai mare cifră ce apare în scrierea
numerelor din fișier. Numerele determinate se afişează pe ecran, în ordinea apariţiei lor în şir, separate printr-un
spaţiu. Dacă nu există două astfel de numere pe poziții distincte, se afişează pe ecran mesajul nu exista.
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 34 5 38 30 87 70 11 8 82 25 se afişează pe ecran 38 82,
dacă fişierul conţine numerele 34 5 38 30 87 70 11 8 38 25 se afişează pe ecran 38 38,
iar dacă fişierul conţine numerele 34 5 38 30 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 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 2024 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) 1a 2b 3d 4d 5c 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a. Răspuns corect: 1 1 3 1 5 6p. Se acordă numai 1p. dacă doar un număr este conform cerinței pe poziția corespunzătoare, numai 2p. dacă doar două numere sunt conform cerinței pe poziția corespunzătoare, numai 3p. dacă doar trei numere sunt conform cerinței pe poziția corespunzătoare, numai 4p. dacă doar patru numere sunt conform cerinței pe poziția corespunzătoare și numai 5p. dacă în continuarea numerelor cerute, se precizează și alte numere. b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinţei (numere din intervalul [16,31]). 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 de tipul indicat (*) -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 pentru orice formă de structură repetitivă de tipul cerut (pentru ... execută, for ... do etc.). (**) Se acordă câte 1p. pentru fiecare aspect specific (expresie de inițializare a contorului, expresie pentru valoarea finală a contorului, doar actualizare implicită a contorului) conform cerinței. 2. Pentru răspuns corect 6p. Se acordă câte 2p. pentru fiecare aspect specific (liste de adiacență ale unui graf parțial, graf conex, graf fără cicluri) conform cerinței. 3. Pentru răspuns corect -inițializare a variabilei c -verificare a proprietății cerute (*) -corectitudine globală a secvenței1) 6p. 1p. 4p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a lungimii unui cuvânt, identificare a unei vocale/consoane, identificare a unui cuvânt cu/fără proprietatea cerută, algoritm de bază de verificare a unei proprietăți într-o serie de valori) 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 al subprogramului (*) -verificare a proprietății cerute (**) -instrucțiune/instrucțiuni de returnare a rezultatului -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) conform cerinței. (**) Se acordă câte 1p. pentru fiecare aspect specific (algoritm de bază pentru parcurgerea cifrelor unui număr, algoritm de bază pentru verificarea unei proprietăți/numărare pentru o serie de valori, număr care conține toate cele patru cifre indicate, număr care nu conține alte cifre decât cele indicate, număr de 9 cifre, cifre suport verificate) conform cerinței. 2. Pentru program corect -declarare a unei variabile care să permită memorarea unui tablou bidimensional, conform cerinței -citire a datelor -construire a tabloului cerut (*) -afișare a datelor în formatul cerut -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (acces la un element al tabloului, construire a unui număr generat prin alipirea unui număr de o cifră la o altă valoare, construire a unui număr generat prin alipirea unui număr de două cifre la o altă valoare, număr minim generat, elemente suport, construire în memorie) 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 (de complexitate O(n)), care utilizează eficient memoria. O soluţie posibilă citește datele din fișier și, pe măsura parcurgerii lor determină cifra maximă întâlnită (cifMax), și primul și ultimul număr dintre cele citite care conțin această cifră (p, respectiv u). Pentru fiecare număr citit x se determină cifra maximă, cm (maximul dintre x%10 și [x/10]) și, dacă cm>cifMax se actualizează cifMax, p și u (cifMaxcm, px, u-1), iar dacă cm=cifMax, se actualizează u (ux). După parcurgerea tuturor numerelor, se afișează p și u sau mesajul indicat (dacă u=-1). b. Pentru program corect - operaţii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - determinare a valorilor, conform cerinței (*),(**) - utilizare a unui algoritm eficient, conform cerinței (***) - declarare a variabilelor, 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.