Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Științe ale Naturii C/C++ 2020 – varianta 5

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 și Cercetării
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
Pagina 1 din 2
Examenul de bacalaureat național 2020
Proba E. d)
Informatică
Limbajul C/C++
Varianta 5
Filieră teoretică, profil real, specializare științe ale naturii
• Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu.
• Timpul de lucru efectiv este de 3 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%2020
a. 20.2 b. 2019 c. 2020 d. 495049
2. Tablourile unidimensionale A și B au elementele: A=(2,22,25,32,48), iar B=(3,5,8,45,60).
Indicați succesiunea de valori care pot fi, în această ordine, elementele tabloului obținut în urma
interclasării lui A și B în ordine crescătoare.
a. (2,5,8,32,48) b. (2,3,5,8,22,25,32,45,48,60)
c. (2,3,5,22,8,25,32,45,48,60) d. (2,22,25,32,48,3,5,8,45,60)
3. Pentru a verifica dacă într-un tablou unidimensional există elementul cu valoarea x=0, 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, 0.
Indicați succesiunea de valori care pot fi, în această ordine, elementele tabloului.
a. (0,1,2,4,20,40,64) b. (0,2,4,8,16,20,32)
c. (0,2,20,0,4,40,0,8,80) d. (0,2,4,20,30,32,40)
4. Variabilele A, B și C sunt de tip real și memorează coeficienții unei ecuații de gradul al II-lea
Ax2+Bx+C=0. Indicați expresia C/C++ care calculează valoarea discriminantului ecuației (B2-4·A·C).
a. pow(B,2)-4*A*C b. sqrt(B)-4*A*C
c. pow(B*B-4*A*C,2) d. sqrt(B*B-4*A*C)
5. În secvența alăturată toate variabilele sunt de tip întreg
și memorează numere naturale. Indicați expresia care
poate înlocui punctele de suspensie astfel încât, în
urma executării secvenței obținute, variabila y să
memoreze valoarea 2n.
y=1;
x=2;
while(n>0)
if(..........) { y=y*x; n=n-1; }
else { x=x*x; n=n/2; }
a. n%2==0 b. n/2==0 c. n%2==1 d. n/2!=0
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)
m0
┌repetă
│ cn%10; n[n/10]
│┌dacă c<5 atunci mm-2*c
││altfel mm+c
│└■
└până când n=0
┌dacă m=0 atunci scrie ‘DA’
│altfel scrie m, ‘NU’
└■
a. Scrieți ce se afișează dacă se citește numărul 247388. (6p.)
b. Scrieți două numere din intervalul [102,103), cu cifre
distincte, care pot fi citite astfel încât, pentru fiecare dintre
acestea, în urma executării algoritmului, să se afișeze DA. (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 structura
repetă...până când cu o structură repetitivă cu test inițial. (6p.)

Subiectul · pagina 2

Ministerul Educației și Cercetării
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
Pagina 2 din 2
2. Pentru un procesor se memorează o literă mare a alfabetului englez, în funcție de producătorul
acestuia: I, dacă producătorul are numele Intel, sau A, dacă producătorul are numele
Advanced Micro Devices.
Variabila p1 memorează litera corespunzătoare producătorului unui procesor, iar variabila p2
memorează litera corespunzătoare producătorului unui alt procesor.
Declarați variabilele p1 și p2 și scrieți o secvență de instrucțiuni C/C++ în urma executării căreia să se
afișeze pe ecran numele producătorului, dacă ambele procesoare au același producător, sau mesajul
Producatori diferiti, în caz contrar.
Exemplu: dacă atât p1 cât și p2 memorează litera A, în urma executării secvenței se afișează
Advanced Micro Devices (6p.)
3. Variabilele x1, x2 și x3 sunt de tip întreg și memorează numere naturale distincte: una dintre ele un
număr impar, iar celelalte două câte un număr par. Scrieți o secvență de instrucțiuni în urma executării
căreia să se afișeze pe prima linie a ecranului valorile inițiale ale variabilelor x1, x2 și x3, în această
ordine, iar pe a doua linie a ecranului, aceleași valori, dar astfel încât cele pare să fie ordonate
crescător, iar cea impară să își păstreze poziția. Numerele afișate pe aceeași linie a ecranului sunt
separate prin câte un spațiu.
Exemplu: dacă x1=8, x2=5, x3=4, în urma executării secvenței se afișează
8 5 4
4 5 8 (6p.)
SUBIECTUL al III-lea (30 de puncte)
1. Un număr natural nenul se numește p-număr dacă are aceeași paritate cu suma divizorilor săi
pozitivi.
Exemplu: 10 și 25 sunt p-numere (10 are aceeași paritate cu 18=1+2+5+10, iar 25 are aceeași
paritate cu 31=1+5+25).
Se citesc trei numere naturale nenule, a, b și k (a≤b), și se cere să se scrie cel de al k-lea p-număr
din intervalul [a,b] sau -1, dacă nu există cel puțin k astfel de numere în acest interval. Scrieți în
pseudocod algoritmul corespunzător.
Exemplu: dacă a=27, b=50 și k=3, atunci se scrie 34. (10p.)
2. Două numere distincte se numesc în oglindă dacă fiecare dintre ele se obține prin citirea cifrelor
celuilalt de la dreapta la stânga.
Exemplu: 127 și 721 sunt în oglindă, iar pentru numerele 100 sau 121 nu există niciun număr cu
care să fie în oglindă.
Scrieți un program C/C++ care citește de la tastatură un număr natural n (n∈∈∈∈[2,50]), apoi cele n
elemente ale unui tablou unidimensional, numere naturale din intervalul [0,104). Programul
transformă tabloul în memorie înlocuind fiecare element de trei cifre cu numărul cu care el este în
oglindă, dacă acesta există, ca în exemplu. Elementele tabloului obținut sunt afișate pe ecran,
separate prin câte un spațiu, iar dacă nu s-a înlocuit niciun element se afișează pe ecran mesajul
nu exista.
Exemplu: pentru n=9 și tabloul (721,72,6,108,180,1221,121,537,1000),
se obține tabloul (127,72,6,801,180,1221,121,735,1000).
iar pentru n=4 și tabloul (525,72,6,120), se afișează pe ecran mesajul nu exista. (10p.)
3. Fișierul bac.txt conține un șir de cel mult 106 numere naturale din intervalul [1,109], separate prin
câte un spațiu.
Se cere să se afișeze pe ecran, separate printr-un spațiu, două numere naturale a și b (a<b), astfel
încât oricare termen al șirului să aparțină intervalului (a,b), iar valoarea expresiei b-a să fie minimă.
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 valorile 7 2 40 5 10 15 11 122 350 18
se afișează pe ecran numerele 1 351.
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 și Cercetării
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
Filieră teoretică, profil real, specializare științe ale naturii
Barem de evaluare și de notare
Pagina 1 din 2
Examenul de bacalaureat național 2020
Proba E. d)
Informatică
BAREM DE EVALUARE ȘI DE NOTARE
(comun pentru limbajele C/C++ și Pascal)
Varianta 5
Filieră teoretică, profil real, specializare ș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 (de exemplu, pentru
numere naturale sunt acceptate și tipuri de date care permit memorarea numerelor întregi).
SUBIECTUL I (20 de puncte)
1b 2b 3d 4a 5c 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a) Răspuns corect: 5NU 6p. Se acordă câte 3p. pentru fiecare dintre cele două
valori conform cerinței; se acordă punctajul și dacă
valorile sunt scrise pe linii diferite sau separate prin
spațiu.
b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două
numere conform cerinței (orice număr din intervalul
cerut, format cu cifrele distincte x, y și z, în orice
ordine, cu proprietatea că 2·(x+y)=z și z>5) sau numai
câte 2p. pentru fiecare dintre cele două numere care
conduc la afișarea mesajului indicat, dar nu au cifre
distincte sau nu aparțin intervalului precizat.
c) Pentru program corect
-declarare a variabilelor
-citire a datelor
-afișare a datelor
-instrucțiuni de decizie (*)
-instrucțiune repetitivă
-atribuiri
-corectitudine globală a programului1)
10p.
1p.
1p.
1p.
3p.
2p.
1p.
1p.
(*) Se acordă numai 2p. dacă doar una dintre
instrucțiunile de decizie este conform cerinței.
d) 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
structură repetitivă de tipul cerut, principial corectă,
dar nu este echivalent cu cel dat.
Se va puncta orice formă de structură repetitivă de
tipul cerut.
2. Pentru rezolvare corectă
-declarare a variabilelor
-afișare a datelor (*)
-corectitudine globală a secvenței1)
6p.
1p.
4p.
1p.
(*) Se acordă câte 2p. pentru fiecare aspect specific
(producător, mesaj) conform cerinței.
3. Pentru răspuns corect
-afișare a datelor (*)
-corectitudine globală a secvenței1)
6p.
5p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect specific
(identificare a unor valori pare/impare, afișare a
datelor inițiale, afișare a datelor ordonate dacă
valoarea impară este pe prima poziție, afișare a
datelor ordonate dacă valoarea impară este pe a doua
poziție, afișare a datelor ordonate dacă valoarea
impară este pe ultima poziție) conform cerinței.

Baremul · pagina 2

Ministerul Educației și Cercetării
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la informatică Varianta 5
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 valorii cerute (*)
-scriere a datelor și tratare a cazului -1
-scriere principial corectă a structurilor de
control, corectitudine globală a
algoritmului1) (**)
10p.
1p.
6p.
1p.
2p.
(*) Se acordă câte 1p. pentru fiecare aspect specific
(identificare a unui divizor, algoritm principial corect de
determinare a unei sume, algoritm principial corect de
numărare, identificare a unui p-număr, numere din
interval, al k-lea număr) conform cerinței.
(**) Se va puncta orice formă principial corectă de
structură repetitivă sau decizională.
2. Pentru program corect
-declarare a unei variabile care să
memoreze un tablou unidimensional
-citire a elementelor tabloului
-transformare a tabloului conform cerinței
(*)
-afișare a datelor și 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 specific
(acces la un element al tabloului, identificare a unei
valori de trei cifre, obținere a unui număr în oglindă,
numere distincte în oglindă, elemente suport,
transformare în memorie) conform cerinței.
3. a) Pentru răspuns corect
-coerență a descrierii 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 (de complexitate O(n)), care utilizează eficient
memoria.
Pe măsura citirii datelor din fișier, se memorează cel
mai mic (x), respectiv cel mai mare (y) număr din șir,
care se actualizează, după caz, la fiecare pas.
Numerele cerute sunt x-1, respectiv y+1.
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.