Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Științe ale Naturii C/C++ 2018 – 28 iunie 2018, varianta 2

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 Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 2
Limbajul C/C++
Filiera teoretică, profilul real, specializarea științe ale naturii
1 din 3
Examenul de bacalaureat naţional 2018
Proba E. d)
Informatică
Limbajul C/C++
Varianta 2
Filiera teoretică, profilul real, specializarea științe ale naturii
• Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu.
• Timpul de lucru efectiv este de 3 ore.
• În rezolvările cerute, identificatorii utilizaţi 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ă).
• În programele cerute, datele de intrare se consideră corecte, validarea acestora
nefiind necesară.
SUBIECTUL I (30 de puncte)
Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Variabilele x și y sunt de tip întreg și memorează câte un
număr natural nenul. O expresie echivalentă cu cea
alăturată poate fi: (4p.)
!(x%y!=0 || y<2)
a. x%y==y%x && y>1 b. (x+y)%y==0 || y>=1
c. (x/y)*y==x && y>=2 d. x%y==0 || y>2
2. 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 [a] partea întreagă a
numărului real a.
citeşte n
(număr întreg nenul)
┌dacă n<0 atunci
│ n-n
└■
s0
┌repetă
│ xn%10
│┌pentru i1,x execută
││ ss+x
│└■
│ n[n/10]
└până când n=0
scrie s
a) Scrieţi numărul afişat dacă se citeşte valoarea
2018. (6p.)
b) Scrieţi patru numere distincte din intervalul
[10,103] care pot fi citite astfel încât, în urma
executării algoritmului, pentru fiecare dintre
acestea, să se afișeze valoarea 100. (4p.)
c) Scrieţi în pseudocod un algoritm echivalent cu
cel dat, înlocuind adecvat structura
pentru...execută cu o atribuire. (6p.)
d) Scrieţi programul C/C++ corespunzător
algoritmului dat. (10p.)

Subiectul · pagina 2

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 2
Limbajul C/C++
Filiera teoretică, profilul real, specializarea științe ale naturii
2 din 3
SUBIECTUL al II-lea (30 de puncte)
Pentru fiecare dintre itemii 1 şi 2 scrieţi pe foaia de examen litera corespunzătoare
răspunsului corect.
1. Variabila x memorează un număr real din intervalul [1,2].
Indicați numărul de valori posibile ale expresiei C/C++ alăturate.
(4p.)
ceil(x)+floor(x)
a. 1 b. 2 c. 3 d. 4
2. În secvențele de mai jos, notate cu S1, S2 și S3, toate variabilele sunt întregi, iar n și k
memorează câte un număr natural nenul.
//S1
nr=0;
for(i=n;i>0;i--)
{ p=i;
while(p>=k) p=p-k;
if(p==0) nr=nr+1;
}
//S2
nr=0;
for(i=1;i<=n;i++)
if(i%k==0) nr=nr+1;
//S3
nr=n/k;
Variabila nr memorează numărul multiplilor lui k din intervalul [1,n] în urma executării,
independent, a secvențelor: (4p.)
a. S1 și S2 b. S1 și S3 c. S2 și S3 d. S1, S2 și S3
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Pentru un medicament se memorează prețul, precum și date despre substanța activă
specifică: doza și codul acesteia.
Variabilele întregi pret1, doza1 și cod1 memorează prețul, respectiv date despre
substanța activă specifică unui medicament, iar variabilele întregi pret2, doza2 și cod2
memorează prețul, respectiv date despre substanța activă specifică unui alt medicament.
Două medicamente distincte pot avea aceeași substanță activă specifică, însă numai în
doze diferite.
Să se scrie o secvenţă de instrucţiuni C/C++ în urma executării căreia să se afişeze prețul
medicamentului cu doză mai mare de substanță activă specifică, dacă ele au o aceeaşi
astfel de substanţă, sau mesajul ALTA CATEGORIE în caz contrar. (6p.)
4. Se citesc patru numere naturale nenule, n, x, y și r (r<x<y<n) și se cere să se afișeze
numărul de valori naturale din intervalul [1,n] pentru care atât restul împărțirii la x, cât și
restul împărțirii la y, sunt egale cu r.
Exemplu: pentru n=200, x=5, y=14 și r=2, se afișează numărul 3 (pentru numerele 2, 72
și 142 restul împărțirii la 5, cât și restul împărțirii la 14, este 2).
a) Scrieți, în pseudocod, algoritmul de rezolvare pentru problema enunțată. (10p.)
b) Precizați rolul tuturor variabilelor care au intervenit în algoritmul realizat la punctul a) și
indicați datele de intrare, respectiv datele de ieșire ale problemei enunțate. (6p.)

Subiectul · pagina 3

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 2
Limbajul C/C++
Filiera teoretică, profilul real, specializarea științe ale naturii
3 din 3
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Variabilele i şi j sunt de tip întreg. Indicați expresia care poate
înlocui punctele de suspensie, astfel încât, în urma executării
secvenţei obţinute, să se afișeze numerele alăturate.
for(i=0;i<9;i++)
{ for(j=0;j<9;j++)
if(i==j)
cout<<”0 ”; | printf(”0 ”);
else
cout<<......<<’ ’; | printf(”%d ”,....);
cout<<endl; | printf(”\n”);
} (4p.)
0 1 2 3 4 5 6 7 0
1 0 3 4 5 6 7 0 1
2 3 0 5 6 7 0 1 2
3 4 5 0 7 0 1 2 3
4 5 6 7 0 1 2 3 4
5 6 7 0 1 0 3 4 5
6 7 0 1 2 3 0 5 6
7 0 1 2 3 4 5 0 7
0 1 2 3 4 5 6 7 0
a. (i-j)%8 b. (i+j)%8 c. (i-j)/8 d. (i+j)/8
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. În secvenţa alăturată toate variabilele sunt de tip
întreg, iar numerele citite sunt naturale.
Scrieţi secvența înlocuind punctele de suspensie
astfel încât, în urma executării secvenţei obţinute,
valoarea variabilei bun să fie 0 dacă toate valorile
citite au fost diferite de 2018, sau 1 altfel. (6p.)
bun=.........;
for(i=1;i<=20;i++)
{ cin>>k; | scanf(“%d”,&k);
.......
}
3. Fiind date două șiruri de valori naturale, s și c, cu număr egal de termeni, numim codificare
a lui s pe baza codului c operația de construire a unui nou șir, în care inițial se copiază
prima valoare din s, apoi, parcurgând de la stânga la dreapta restul șirului s, se adaugă
valoarea curentă din s la începutul noului șir, dacă termenul de pe aceeași poziție în c
este par, sau la finalul noului șir, în caz contrar.
Exemplu: dacă șirul s este 7, 3, 6, 2, 8, iar codul c este 0, 12, 5, 23, 14 se obține șirul
codificat 8, 3, 7, 6, 2 (inițial șirul conține termenul 7, apoi se adaugă, în ordinea parcurgerii
lui s, termenii 3 și 8 la început, iar restul termenilor la final).
Scrieţi un program C/C++ care citeşte de la tastatură numere naturale din intervalul
[0,102]: ns, nc (ns≥2, nc≥2), cei ns termeni ai șirului s, apoi cei nc termeni ai șirului c.
Programul afișează pe ecran, separați prin câte un spațiu, termenii șirului obținut prin
codificarea lui s pe baza lui c, dacă cele două șiruri au același număr de termeni, sau
mesajul cod incorect, în caz contrar.
Exemplu: dacă ns=5, nc=5, s=(7,3,6,2,8), iar c=(0,12,5,23,14), se afişează:
8 3 7 6 2 (10p.)
4. Numim secvență neuniformă a unui șir de numere naturale un subșir al acestuia, format
din termeni aflați pe poziții consecutive în șirul dat, cu proprietatea că oricare doi termeni
aflați pe poziții vecine sunt diferiți. Lungimea secvenței este egală cu numărul de termeni ai
acesteia.
Fișierul bac.txt conține un șir de cel mult 106 numere naturale din intervalul [0,9].
Numerele sunt separate prin câte un spațiu, iar în șir există cel puțin doi termeni diferiți pe
poziții consecutive.
Se cere să se afișeze pe ecran lungimea maximă a unei secvențe neuniforme a șirului aflat
în fișier. Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al
memoriei utilizate.
Exemplu: dacă fişierul bac.txt conţine numerele
7 7 1 3 1 1 7 3 3 3 7 3 9
atunci pe ecran se afișează valoarea 4
a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)
b) Scrieţi programul C/C++ corespunzător algoritmului descris. (8p.)

Baremul

Deschide PDF-ul original

Baremul · pagina 1

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 2
Filiera teoretică, profilul real, specializarea ştiinţe ale naturii
Barem de evaluare şi de notare
1 din 2
Examenul de bacalaureat naţional 2018
Proba E. d)
Informatică
Barem de evaluare și de notare
(comun pentru limbajele C/C++ şi Pascal)
Varianta 2
Filiera teoretică, profilul real, specializarea ştiinţe ale naturii
• Se punctează oricare alte modalităţi de rezolvare corectă a cerinţelor.
• Nu se acordă punctaje intermediare, altele decât cele precizate explicit prin barem.
Nu se acordă fracţiuni de punct.
• Se acordă 10 puncte din oficiu. Nota finală se calculează prin împărţirea punctajului
total acordat pentru lucrare la 10.
• Utilizarea unui tip de date care depăşeşte domeniul de valori precizat în enunţ este
acceptată dacă acest lucru nu afectează corectitudinea în funcţionarea programului.
• Se vor lua în considerare atât implementările concepute pentru compilatoare pe 16
biţi, cât şi cele pentru compilatoare pe 32 de biţi.
SUBIECTUL I (30 de puncte)
1. c 4p.
2. a) Răspuns corect: 69 6p.
b) Pentru răspuns corect 4p. Se acordă câte 1p. pentru fiecare număr
conform cerinței (de exemplu 68, 86, 608,
806, 680, 860).
c) Pentru algoritm pseudocod corect
-echivalenţă a prelucrării realizate,
conform cerinţei (*)
-corectitudine globală a algoritmului1)
6p.
5p.
1p.
(*) Se acordă numai 2p. dacă algoritmul are
o atribuire conform cerinței, principial
corectă, dar algoritmul nu este echivalent
cu cel dat.
O soluție posibilă înlocuiește, în cadrul
algoritmului, structura precizată cu
atribuirea ss+x*x
d) Pentru program corect
-declarare a tuturor variabilelor
-citire date
-afişare date
-instrucţiune de decizie corectă
-instrucţiuni repetitive corecte (*)
-atribuiri corecte
-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.
SUBIECTUL al II - lea (30 de puncte)
1. c 4p.
2. d 4p.
3. Pentru rezolvare corectă
-identificare a substanțelor active
specifice identice
-determinare a dozei maxime
-afișare preț/mesaj
-corectitudine globală a secvenţei1)
6p.
1p.
2p.
2p.
1p.

Baremul · pagina 2

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 2
Filiera teoretică, profilul real, specializarea ştiinţe ale naturii
Barem de evaluare şi de notare
2 din 2
4. a) Pentru rezolvare corectă
-citire a datelor
-determinare a numărului cu
proprietatea cerută (*)
-afișare a datelor
-scriere principial corectă a structurilor
de control (**)
10p.
1p.
6p.
1p.
2p.
(*) Se acordă câte 2p. pentru fiecare aspect
al cerinței (identificare a unui număr cu
proprietatea cerută pentru resturi, algoritm
de numărare principial corect, numere din
intervalul cerut).
(**) Se va puncta orice formă corectă de
structură repetitivă sau decizională.
b) Pentru răspuns corect
-precizare a rolului variabilelor utilizate
(*)
-date de intrare identificate corect
-date de ieşire identificate corect
6p.
2p.
2p.
2p.
(*) Se acordă numai 1p. dacă s-au
identificat doar o parte din variabilele
utilizate sau dacă nu pentru toate variabilele
este corect precizat rolul acestora.
SUBIECTUL al III - lea (30 de puncte)
1. b 4p.
2. Pentru răspuns corect
-instrucţiune de iniţializare a
variabilei bun
-instrucţiune de actualizare a
variabilei bun
-corectitudine globală a secvenţei1)
6p.
2p.
3p.
1p.
3. Pentru program corect
-declarare a cel puțin unei variabile de
tip tablou
-citire a elementelor tablourilor
-determinare și afișare a valorilor
conform cerinței (*)
-tratare caz cod incorect
-declarare variabile simple,
corectitudine globală a programului1)
10p.
1p.
2x1p.
5p.
1p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect
al cerinței (identificare valori pare/impare,
plasare/afișare a unor valori din tablou la
începutul șirului, plasare/afișare a unor
valori din tablou la finalul șirului, ordine a
valorilor, corespondență plasare
valori/paritate cod).
4. a) Pentru răspuns corect
-coerenţă a explicării metodei (*)
-justificare a unor elemente de
eficienţă, conform cerinței
2p.
1p.
1p.
(*) Se acordă punctajul chiar dacă metoda
aleasă nu este eficientă.
b) Pentru program corect
-operaţii cu fişiere: declarare,
pregătire în vederea citirii, citire din
fişier
-determinare a valorii cerute (*, **)
-utilizare a unui algoritm eficient (***)
-afișare a tuturor datelor, declarare a
tuturor variabilelor, corectitudine
globală a programului1)
8p.
1p.
5p.
1p.
1p.
(*) Se acordă punctajul chiar dacă soluţia
propusă nu prezintă elemente de eficienţă.
(**) 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ă parcurge datele din fișier,
memorând perechea formată din ultimele
valori citite, lungimea secvenței curente,
precum și lungimea maximă determinată;
pentru fiecare valoare curentă citită se
actualizează perechea, lungimea secvenței
curente, dacă perechea are proprietatea
cerută și, după caz, lungimea maximă
cerută.
1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.