Înapoi la fișa subiectului

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 original

Subiectul · 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. 3

Subiectul · 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)
i1
┌cât timp i≤n execută
│ mi
│┌cât timp m%2=0 execută
││ m[m/2]
│└■
│┌dacă m≠i atunci
││ scrie m,’ ’
│└■
│ ii+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 original

Baremul · 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 (cifMaxcm, px, u-1),
iar dacă cm=cifMax, se actualizează u (ux). 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.