Înapoi la fișa subiectului

Textul subiectului și baremului

Model oficial BAC Informatică Științe ale Naturii C/C++ 2024

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Ă Model
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
Pagina 1 din 2
Examenul național de bacalaureat 2024
Proba E. d)
INFORMATICĂ
Limbajul C/C++
Model
Filieră teoretică, profil real, specializare științe ale naturii
• 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ă.
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 și poate memora un număr natural din intervalul
[0,109). Indicați valoarea maximă pe care o poate avea expresia C/C++ alăturată.
x%2024
a. 20.24 b. 295 c. 2023 d. 494071
2. În secvența de mai jos, toate variabilele sunt de tip întreg.
for(i=0;i<7;i++)
{ for(j=0;j<7;j++)
if(...........) cout<< "4 "; | printf("4 ");
else cout<< "2 "; | printf("2 ");
cout<<endl; | printf("\n ");
}
2 2 2 2 2 2 2
2 2 2 2 2 2 2
2 2 2 2 2 2 2
2 2 2 2 2 2 2
2 2 2 4 2 2 2
2 2 4 4 4 2 2
2 4 4 4 4 4 2
Indicați o expresie care poate înlocui punctele de suspensie astfel încât, în urma executării secvenței
obținute, să se afișeze pe ecran cifrele din figura de mai sus, în această ordine.
a. j<i && i+j>6 b. j<i && i+j<6
c. j>i && i+j>6 d. j>i && i+j<6
3. Tablourile unidimensionale A și B au valorile A=(40,35,24,10,7) și B=(60,20,16,6,2) și sunt
interclasate în ordine crescătoare, fiind parcurse de la dreapta la stânga. Indicați numărul elementelor
tabloului B care se compară cu elementul cu valoarea 24 din tabloul A pe parcursul aplicării metodei.
a. 1 b. 2 c. 3 d. 4
4. Indicați valoarea expresiei C/C++ alăturate. floor(sqrt(24))
a. 2 b. 4 c. 5 d. 6
5. În secvențele notate cu s1, s2 și s3, definite mai jos, toate variabilele sunt întregi.
//s1
rez=0;
for(i=1;i<=n;i++)
rez=rez+i;
//s3
rez=0;
if(n%2==1)
{ rez=n; n=n-1;}
for(i=1;i<=n/2;i++)
rez=rez+i+(n+1-i);
//s2
rez=0;
while(n>1)
{ rez=rez+n+(n-1); n=n-2; }
Dacă valoarea inițială a variabilei n este 12, se obține aceeași valoare pentru variabila rez în urma
executării, independent, a secvențelor:
a. s1 și s2 b. s1 și s3 c. s2 și s3 d. s1, s2 și s3

Subiectul · pagina 2

Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Model
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
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 nenul)
m0; in
┌cât timp i≥1 execută
│ citește x (număr natural)
│┌cât timp x%10 ≤ [x/10]%10 execută
││ x[x/10]
│└■
│ mm+x; ii-1
└■
┌dacă m≠n atunci scrie m
│altfel scrie „egal”
└■
a. Scrieți ce se afișează dacă se citesc, în această
ordine, numerele 4, 721, 20020, 1321, 211. (6p.)
b. Dacă primul număr citit este 2, scrieți un set de
numere distincte din intervalul [10,104] care pot fi
citite în continuare astfel încât, în urma executării
algoritmului, să se afișeze mesajul egal. (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ă cu o
structură de tip pentru...execută. (6p.)
2. Pentru a verifica dacă într-un tablou unidimensional care memorează 7 numere naturale există
elementul cu valoarea x=10, se aplică metoda căutării binare, iar succesiunea de elemente ale tabloului
a căror valoare se compară cu valoarea lui x pe parcursul aplicării metodei indicate este: 20, 2, 4.
Precizați succesiunea de valori care pot fi, în această ordine, elementele tabloului. (6p.)
3. Variabila prod memorează inițiala producătorului unui telefon (litera A pentru APPLE sau litera S pentru
SAMSUNG), iar variabila pret memorează prețul acestuia (număr real). Declarați variabilele prod și
pret și scrieți o secvență de instrucțiuni C/C++ care afișează pe ecran, pe linii separate, datele
telefonului, precedate de cuvintele PRODUCATOR, respectiv PRET, scrise toate cu litere mari, ca în
exemplu.
Exemplu: dacă variabila prod memorează litera A, iar variabila pret memorează 1599.99 se
afișează:
PRODUCATOR APPLE
PRET 1599.99 (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Se citesc două numere naturale din intervalul [1,104], a și b, și se cere să se scrie produsul divizorilor
naturali comuni lui a și b. Scrieți, în pseudocod, algoritmul de rezolvare pentru problema enunțată.
Exemplu: dacă a=20 și b=12, atunci se scrie valoarea 8 (1∙2∙4=8). (10p.)
2. Scrieți un program C/C++ care citește de la tastatură un număr natural n (n[1,102]), apoi un șir de n
numere naturale distincte din intervalul [1,109], elemente ale unui tablou unidimensional. Programul
afișează pe ecran termenii șirului, pe două linii separate, astfel încât prima linie să conțină mulțimea
celor care au mai puțin de trei cifre, iar a doua linie să conțină mulțimea celor care au mai mult de trei
cifre. Numerele de pe fiecare linie sunt afișate într-o ordine oarecare, iar dacă una dintre cele două
mulțimi este vidă, se afișează pe ecran doar mesajul nu exista.
Exemplu: pentru n=7 și tabloul (124,49,957,9000,2,5237,100000) se
pot afișa pe ecran valorile alăturate. (10p.)
49 2
9000 5237 100000
3. La un concurs se acordă premiile I și al II-lea. Fiecare premiant este recompensat cu câte o carte, care
are un preț egal pentru toți cei cu același premiu. Prețurile cărților alese pentru premiile I și al II-lea sunt
stabilite astfel încât să fie în ordine strict descrescătoare, iar pentru fiecare premiu să se ia în
considerare cel mai mare preț pentru care există suficiente cărți propuse, în condițiile precizate.
Fișierul bac.txt conține pe prima linie două numere naturale din intervalul [1,20], n1 și n2,
reprezentând numărul concurenților care primesc premiile I, respectiv al II-lea, iar pe a doua linie un șir
de cel mult 106 numere naturale din intervalul [10,103], separate prin câte un spațiu, fiecare număr
reprezentând prețul unei cărți propuse pentru premiere.
Se cere să se afișeze pe ecran, separate prin câte un spațiu, în ordine strict descrescătoare, prețurile cărților
alese, corespunzătoare celor două premii, iar dacă nu există două astfel de prețuri, se afișează mesajul
nu exista. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul conține valorile
3 2
500 100 25 100 200 100 20 10 200 100 75 52 15 52 20 20 10 30 20 15 100
se afișează pe ecran, în această ordine, numerele 100 52.
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Ă Model
Filieră teoretică, profil real, specializare științe ale naturii
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)
Model
Filieră teoretică, profil real, specializare științe ale naturii
• 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 3c 4b 5d 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a) Răspuns corect: 2024 6p.
b) Pentru răspuns corect 6p. Se acordă numai 2p. dacă s-au precizat două valori,
dar care nu conduc la afișarea mesajului cerut, se
acordă numai 3p. dacă s-au introdus două valori care
conduc la afișarea mesajului cerut, dar care nu sunt
conform cerinței.
Valorile cerute sunt două numere distincte din
mulțimea {10, 11, 100, 110, 111, 1000, 1100, 1110,
1111, 10000}.
c) Pentru program corect
- declarare a variabilelor conform cerinței
- citire a datelor conform cerinței
- afișare a datelor conform cerinței
- instrucțiuni repetitive conform cerinței(*)
- instrucțiune de decizie conform cerinței
- atribuiri conform cerinței
- corectitudine globală a programului1)
10p.
1p.
1p.
1p.
3p.
2p.
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 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ă numai 1p. dacă algoritmul are o
structură repetitivă conform cerinţei, principial corectă,
dar nu este echivalent cu cel dat.
Se va puncta orice formă corectă de structură
repetitivă conform cerinței (pentru ... execută, for...to
etc.).
(**) Se acordă câte 1p. pentru fiecare aspect specific
(expresie inițială a contorului, expresie finală a
contorului, actualizare a contorului numai prin
instrucțiunea repetitivă) conform cerinței.
2. Pentru rezolvare corectă 6p. Se acordă numai 3p. dacă s-a precizat o succesiune
de valori în numărul indicat și în ordine
crescătoare/descrescătoare, dar elementele precizate
în enunț nu sunt poziționate corespunzător.
3. Pentru rezolvare corectă
- declarare a variabilelor indicate (*)
- afișare a datelor în formatul indicat (**)
- corectitudine globală a secvenței1)
6p.
2p.
3p.
1p.
(*) Se acordă câte 1p. pentru fiecare dintre cele două
variabile declarate conform cerinței.
(**) Se acordă câte 1p. pentru fiecare aspect specific
(date ale telefonului, cuvinte care preced datele, linii
separate) conform cerinței.

Baremul · pagina 2

Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Model
Filieră teoretică, profil real, specializare științe ale naturii
Barem de evaluare și de notare
Pagina 2 din 2
SUBIECTUL al III - lea (30 de puncte)
1. Pentru algoritm corect
- citire a datelor
- determinare a numărului cerut (*)
- afișare a datelor
- scriere principial corectă a structurilor de
control, declarare a tuturor variabilelor
locale, corectitudine globală a
algoritmului1) (**)
10p.
1p.
6p.
1p.
2p.
(*) Se acordă câte 2p. pentru fiecare aspect
(identificare a unui divizor al unui număr, algoritm de
bază pentru produsul unei serii de valori, divizori
suport înmulțiți) conform cerinței.
(**) Se va puncta orice formă explicită de structură
repetitivă sau decizională.
2. Pentru program corect
- declarare a unei variabile care să
memoreze un tablou unidimensional
- citire a datelor
- afișare a valorilor conform cerinței (*)
- tratare a cazului nu exista
- 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 număr care are mai mult/mai
puțin/exact trei cifre, elemente suport analizate,
elemente suport afișate pentru fiecare mulțime, afișare
consecutivă a elementelor din aceeași mulțime, ordine
a mulțimilor de elemente, afișare pe două linii
separate) 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.
O soluție posibilă utilizează un vector de apariții, ap,
unde app memorează numărul de apariții ale prețului p
în șirul celor propuse. Pe măsura citirii datelor din
fișier se actualizează app pentru fiecare valoare p
citită. Valorile cerute, x și y (x>y, inițializate cu valori
nule), se determină prin parcurgerea vectorului de
apariții în ordine descrescătoare a lui p și memorând
primele prețuri p adecvate pentru fiecare premiu,
astfel: dacă app≥n1 și încă nu s-a determinat un preț
pentru premiul I (x=0), atunci x=p; dacă app≥n2 și s-a
determinat un preț pentru premiul I, dar nu și pentru
premiul al II-lea (x≠0, dar y=0), atunci y=p. Algoritmul
se încheie dacă y≠0 sau dacă s-a încheiat
parcurgerea vectorului de apariții. Dacă după
parcurgerea vectorului de apariții y=0, atunci se
afișează mesajul indicat.
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.