Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Științe ale Naturii C/C++ 2021 – sesiunea iunie–iulie, 29 iunie 2021, varianta 1

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 1
Limbajul C/C++
Filieră teoretică, profil real, specializare științe ale naturii
Pagina 1 din 2
Examenul național de bacalaureat 2021
Proba E. d)
INFORMATICĂ
Limbajul C/C++
Varianta 1
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. Indicați o expresie C/C++ care are valoarea 1 dacă și numai dacă valorile variabilelor întregi x și y
sunt numere pare.
a. x%2==0 && (y+1)%2!=0 b. (x-y)/2==0
c. (x+y)%2==0 && (x-y)%2==0 d. x%2==y%2
2. Tablourile unidimensionale A şi B au valorile A=(1,7,10,18,32) și B=(2,5,12,16,49) și se
interclasează în ordine crescătoare, fiind parcurse de la stânga la dreapta. Pentru a determina al 4-lea
element obținut în urma interclasării, se compară elementul cu valoarea xa din A cu elementul cu
valoarea xb din B. Indicați valorile lui xa și xb.
a. xa=7 și xb=5 b. xa=7 și xb=12 c. xa=10 și xb=16 d. xa=18 și xb=16
3. Variabilele întregi fa şi fb memorează numărătorul, respectiv numitorul unei fracţii. Indicați o secvenţă
de instrucțiuni C/C++ care să memoreze în variabilele întregi sa şi sb numărătorul, respectiv numitorul
fracţiei obţinute prin scăderea fracţiei menţionate mai sus din fracția 2020
2021.
a. sa=2020*fb-2021*fa;
sb=fb*2021;
b. sa=2020*(fa-fb);
sb=fb*2021;
c. sa=2020-fa;
sb=fb*2021;
d. sa=2020/fb-2021/fa;
sb=fb/2021;
4. Variabilele x și y sunt de tip real, x are valoarea 3.5, iar y are valoarea 7.2. Indicați expresia C/C++ a
cărei valoare este 3.
a. floor(-x-y) b. floor(x+y)
c. floor(x-y) d. floor(y-x)
5. Șirul lui Fibonacci are termenii 1, 1, 2, 3, 5, 8 ….
În secvența C/C++ alăturată toate variabilele sunt de tip întreg. Indicați
expresia care poate înlocui punctele de suspensie, astfel încât, în urma
executării secvenţei obţinute, variabila z să aibă valoarea 1 dacă
numerele nenule memorate inițial în variabilele x și y (x<y) sunt termeni
consecutivi ai șirului lui Fibonacci, sau valoarea 0 altfel.
while(x>0)
{ z=y-x;
y=x;
x=z;
}
if(.........)z=1;
else z=0;
a. x==0 || y==1 b. x==1 || y==0
c. x==0 && y==1 d. x==1 && y==1

Subiectul · pagina 2

Ministerul Educației
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Varianta 1
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 operația de interschimbare a valorilor variabilelor
a și b.
citește x,y
(numere naturale nenule)
┌dacă x>y atunci xy
└■
nr1
┌pentru iy,x,-1 execută
│ scrie 1
│┌dacă nr≥x atunci
││ scrie 2
│└■
│ nrnr*3
│ scrie 1
└■
a. Scrieți ce se afișează în urma executării algoritmului dacă se citesc,
în această ordine, numerele 8 și 5. (6p.)
b. Dacă pentru variabila x se citește valoarea 10, scrieți două numere
care pot fi citite pentru variabila y, astfel încât, în urma executării
algoritmului, pentru fiecare dintre acestea, cifra 2 să fie afișată doar
de trei ori. (6p.)
c. Scrieți programul C/C++ corespunzător algoritmului dat, fără a utiliza
eventuale subprograme predefinite pentru interschimbare. (10p.)
d. Scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind structura pentru...execută cu o
structură repetitivă cu test inițial. (6p.)
2. Elementele unui tablou unidimensional sunt, în această ordine, (2,7,10,12,16,36,45). Pentru a
verifica dacă în tablou există elementul cu valoarea x=8, se aplică metoda căutării binare.
Scrieți succesiunea de elemente a căror valoare se compară cu valoarea lui x pe parcursul aplicării
metodei indicate. (6p.)
3. În secvenţa de mai jos toate variabilele sunt de tip întreg, iar de la tastatură se citesc 10 numere
naturale.
Scrieţi secvența înlocuind punctele de suspensie astfel încât,
în urma executării secvenţei obţinute, valoarea variabilei
maxp să fie egală cu cel mai mare dintre numerele citite care
sunt pare și au două cifre, sau să fie egală cu -1 dacă nu
există astfel de numere. (6p.)
maxp=......;
for(i=1;i<=10;i++)
{ cin>>x; | scanf(”%d”,&x);
.............
}
SUBIECTUL al III-lea (30 de puncte)
1. Se citește un număr natural n (n≥2) și se cere să se scrie suma divizorilor primi ai lui n care apar la o
putere impară în descompunerea în factori primi a acestuia.
Scrieți, în pseudocod, algoritmul de rezolvare a problemei enunțate.
Exemple: pentru n=360, se scrie 7 (360=23∙32∙51, deci suma este 2+5), iar pentru n=16, se scrie 0.(10p.)
2. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale din intervalul [1,102], n și
k, și cele n elemente ale unui tablou unidimensional, numere naturale din intervalul [0,109].
Programul afișează pe ecran, separate prin câte un spațiu, primele k elemente ale tabloului care au
cifra unităților 0, sau doar mesajul nu exista dacă nu există k astfel de elemente.
Exemplu: pentru n=8, tabloul (23, 70, 61, 8, 0, 50, 742, 10) şi k=3,
se afișează pe ecran numerele 70 0 50 (10p.)
3. Numărul natural a se numește sufix al numărului natural b dacă a este egal cu b sau dacă b se poate
obține din a prin alipirea la stânga a unor noi cifre.
Fişierul bac.txt conţine pe prima linie un număr natural x (x[100,999]), iar pe a doua linie un şir de
cel mult 105 numere naturale din intervalul [0,109]. Numerele din şir sunt separate prin câte un spaţiu.
Se cere să se afișeze pe ecran ultimul termen al șirului care îl are drept sufix pe numărul x. Dacă nu
există un astfel de termen, se afișează pe ecran mesajul nu exista. Proiectați un algoritm eficient din
punctul de vedere al memoriei utilizate și al timpului de executare.
Exemplu: dacă fișierul conține
numerele alăturate, atunci pe
ecran se afișează 20210
210
3445 210 893210 1245 1210 3210 15210 67120 20210 12
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 1
Filieră teoretică, profil real, specializare științe ale naturii
Barem de evaluare și de notare
Pagina 1 din 2
Examenul național de bacalaureat 2021
Proba E. d)
INFORMATICĂ
BAREM DE EVALUARE ȘI DE NOTARE
(comun pentru limbajele C/C++ și Pascal)
Varianta 1
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ă
corectitudinea în funcționarea programului.
SUBIECTUL I (20 de puncte)
1a 2b 3a 4d 5c 5x4p.
SUBIECTUL al II - lea (40 de puncte)
1. a) Răspuns corect: 1111121121 6p. Se acordă numai 1p. dacă doar prima cifră este
conform cerinței, numai 2p. dacă doar primele două
cifre sunt conform cerinței, numai 3p. dacă doar
primele patru cifre sunt conform cerinței, numai 5p.
dacă doar primele șapte cifre sunt conform cerinței.
b) Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două
numere conform cerinței (6, 15).
c) Pentru program corect
-declarare a variabilelor
-citire a datelor
-afișare a datelor
-instrucțiuni de decizie (*)
-instrucțiune repetitivă
-implementare a operației de
interschimbare
-atribuiri precizate în algoritmul dat
-corectitudine globală a programului1)
10p.
1p.
1p.
1p.
2p.
2p.
1p.
1p.
1p.
(*) Se acordă numai 1p. dacă doar una dintre
instrucțiunile de decizie este conform cerinței.
d) Pentru algoritm pseudocod corect
-utilizare a unei structuri repetitive cu test
inițial (*)
-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 chiar dacă algoritmul obținut
nu este echivalent cu cel dat.
Se va puncta orice formă explicită de structură
repetitivă conform cerinței (cât timp...execută, while...
do etc.).
(**) Se acordă câte 1p. pentru fiecare aspect
(inițializare contor, expresie logică pentru test inițial,
actualizare contor) conform cerinței.
2. Răspuns corect
12, 7, 10
6p. Se acordă numai 2p. dacă doar prima valoare este
conform cerinței și numai 4p. dacă doar primele două
valori sunt conform cerinței.
3. Pentru răspuns corect
-determinare a valorii cerute (*)
-corectitudine globală a secvenței1)
6p.
5p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect
(inițializare maxp, algoritm de bază pentru
determinarea unui maxim dintr-o serie de valori,
identificare a numerelor pare, identificare a numerelor
de două cifre, numere suport cu proprietatea dată
comparate) conform cerinței.

Baremul · pagina 2

Ministerul Educaţiei
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Varianta 1
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 (*)
-afișare a datelor
-scriere principial corectă a structurilor de
control, corectitudine globală a
algoritmului1) (**)
10p.
1p.
6p.
1p.
2p.
(*) Se acordă câte 1p. pentru fiecare aspect
(identificare a unui divizor, identificare a unui
număr/divizor prim, identificare a puterii unui divizor în
descompunerea în factori primi, identificare a unei
puteri impare, algoritm de bază pentru însumarea unei
serii de valori, valori suport însumate) 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 tuturor datelor
-determinare a valorilor cerute (*)
-afișare a datelor și tratare a cazului
nu exista (**)
-declarare a variabilelor simple,
corectitudine globală a programului1)
10p.
1p.
1p.
5p.
2p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect specific
(parcurgere a unei serii de elemente ale tabloului,
acces la ultima cifră a unui număr, identificare a unei
cifre nule, algoritm de bază pentru numărarea unei
serii de valori, valori suport numărate) conform
cerinței.
(**) Se acordă numai 1p. dacă s-au afișat atât unele
valori, cât și mesajul indicat.
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
care utilizează eficient memoria.
O soluţie posibilă citește prima valoare din fișier (x),
apoi, pe măsura citirii celorlalte valori, memorează
valoarea curentă (crt), precum și ultimul număr cu
proprietatea cerută (u, inițializat cu -1); u se
actualizează doar dacă crt mod 1000=x (u=crt).
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 (***)
-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.