Textul subiectului și baremului
Test de antrenament BAC Informatică Științe ale Naturii C/C++ 2020 – testul 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 originalSubiectul · pagina 1
Ministerul Educaţiei și Cercetării
Centrul Național de Evaluare și Examinare
Probă scrisă la informatică Testul 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++
Testul 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. Indicați o expresie C/C++ care are valoarea 1 dacă și numai dacă numărul natural memorat în variabila
întreagă x are exact o cifră.
a. x/10==0 b. x%10==0
c. (x/10)/10==0 d. (x%10)%10==0
2. Pentru a verifica dacă în tabloul unidimensional (2,5,7,9,10,16,21) există elementul cu valoarea
x=6 se aplică metoda căutării binare. Succesiunea de elemente a căror valoare se compară cu x pe
parcursul aplicării metodei este:
a. 2,5,7 b. 9,5,7 c. 2,10,16 d. 9,7,5
3. Variabilele i și j sunt de tip întreg. Indicați expresia care poate înlocui zona
punctată astfel încât, în urma executării secvenței obținute, să se afișeze pe ecran
simbolurile alăturate.
for(i=0;i<6;i++)
{ for(j=0;j<6;j++)
if(............) cout<<"* "; | printf("*");
else if(j<3) cout<<"( "; | printf("( ");
else cout<<") "; | printf("( ");
cout<<endl; | printf("\n");
}
( ( ( ) ) )
* ( ( ) ) *
* * ( ) * *
* * ( ) * *
* ( ( ) ) *
( ( ( ) ) )
a. (i<j || i+j>5) && (i>j || i+j<5) b. (i<j || i+j>5) || (i>j || i+j<5)
c. (i<j && i+j>5) && (i>j && i+j<5) d. (i<j && i+j>5) || (i>j && i+j<5)
4. O expresie C/C++ care are valoarea 1 este:
a. 20.20<floor(20.20) && 20.20>1+floor(20.20)
b. 20.20>=floor(20.20) && 20.20<1+floor(20.20)
c. 20.20<=floor(20.20) && 20.20+1==floor(20.20)
d. 20.20>floor(20.20) && 20.20-1==floor(20.20)
5. Variabilele x și y sunt de tip întreg și memorează numere naturale, iar x are o
valoare nenulă. Indicați expresia care poate înlocui punctele de suspensie astfel
încât, în urma executării secvenței obținute, variabila y să memoreze câtul
împărțirii la 2020 a numărului memorat inițial în variabila x.
y=0;
while(x>=2020)
{ y=y+1;
x=.........;
}
a. x-1 b. x+1 c. x-2020 d. x+2020Subiectul · pagina 2
Ministerul Educaţiei și Cercetării Centrul Național de Evaluare și Examinare Probă scrisă la informatică Testul 5 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) x1; yn; d2 ┌cât timp x<y execută │┌dacă n%d=0 atunci ││ xd ││ y[n/d] │└■ │ dd+1 └■ ┌dacă x=y atunci │ scrie 'D',x │altfel scrie 'N' └■ a. Scrieți ce se afișează dacă se citește numărul 100. (6p.) b. Scrieți toate numerele din intervalul [1,9] care pot fi citite astfel încât, pentru fiecare dintre acestea, în urma executării algoritmului, să se afișeze N. (6p.) c. Scrieți programul C/C++ corespunzător algoritmului dat. (10p.) d. Scrieți în pseudocod un algoritm echivalent cu cel dat, care să nu cuprindă nicio structură repetitivă. (6p.) 2. Variabilele reale real1 și imaginar1 memorează partea reală și partea imaginară a unui număr complex, iar variabilele reale real2 și imaginar2 memorează partea reală și partea imaginară a unui alt număr complex. Declarați corespunzător variabilele și scrieți o secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran, separate printr-un spațiu, partea reală și partea imaginară a numărului care are modulul cel mai mare. (6p.) 3. Știind că unul dintre cele trei elemente ale tabloului A are valoarea 49 și două dintre elementele tabloului B au valorile 16, respectiv 100, scrieți câte un exemplu de valori pentru elementele tabloului A, respectiv ale tabloului B, în ordinea în care ele pot apărea în fiecare tablou, astfel încât, prin metoda interclasării acestora, să se obțină tabloul unidimensional (7,9,12,16,17,49,100). (6p.) SUBIECTUL al III-lea (30 de puncte) 1. Un număr este scris în baza de numerație b (b≤10) dacă cifrele sale aparțin intervalului [0,b-1]. Se citește un număr natural, n, și se cere să se afișeze cea mai mică bază din intervalul [2,10] căreia i-ar putea corespunde scrierea lui n. Scrieţi, în pseudocod, algoritmul de rezolvare a problemei enunțate. Exemplu: dacă n=50731, se scrie 8. (10p.) 2. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural, n (n [2,20]), şi cele n elemente ale unui tablou unidimensional, numere naturale din intervalul [0,109). Programul afişează pe ecran numărul de valori care sunt divizibile cu 20. Exemplu: pentru n=10 și tabloul (10, 200, 25, 40, 50, 80,400,120,100,5) se afișează pe ecran 6 (10p.) 3. Fișierul bac.txt conține un șir de cel mult 106 numere întregi din intervalul [-103,103], separate prin câte un spațiu. Se cere să se afișeze pe ecran suma maximă obținută adunând numere pozitive de pe poziții consecutive în șirul aflat în fișier. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate și al timpului de executare. Exemplu: dacă fișierul bac.txt conține valorile 4 -6 7 2 1 4 -10 -3 9 2 -2 1 1 1 1 1 3 se afișează pe ecran numărul 14 a. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.) b. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 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) Testul 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. SUBIECTUL I (20 de puncte) 1a 2b 3d 4b 5c 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a) Răspuns corect: D10 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinței. b) Răspuns corect: 2 3 5 6 7 8 6p. Se acordă câte 1p. pentru fiecare dintre numerele conform cerinței c) Pentru program corect -declarare variabile -citire date -afişare date -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 structuri conform cerinţei, principial corecte, dar nu este echivalent cu cel dat. 2. Pentru rezolvare corectă -definire a variabilelor conform cerinței -determinare a numărului cu modul maxim - afișare a datelor -corectitudine globală a secvenței1) 6p. 2p. 2p. 1p. 1p. 3. Pentru rezolvare corectă 6p. (*) Se acordă câte 2p. pentru fiecare aspect specific (număr de elemente, ordine, valori suport) conform cerinței. SUBIECTUL al III - lea (30 de puncte) 1. Pentru algoritm corect -citire a datelor -determinare a valorii cerute (*) -afișare adatelor -scriere principial corectă a structurilor de control, corectitudine globală a algoritmului1) (**) 10p. 1p. 6p. 1p. 2p. (*) Se acordă câte 2p. pentru fiecare aspect specific (identificare a unei cifre, algoritm principial corect pentru determinarea unei valori minime/maxime, stabilire bază) conform cerinței. (**) Se va puncta orice formă corectă de structură repetitivă sau decizională. 2. Pentru program corect -declarare a unei variabile care să memoreze un tablou unidimensional -citire a datelor -determinare a valorii cerute (*) -afişare a datelor -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (acces la un element al tabloului, numere divizibile cu 20, algoritm de numărare principial corect) conform cerinţei.
Baremul · pagina 2
Ministerul Educaţiei și Cercetării Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Testul 5 Filieră teoretică, profil real, specializare științe ale naturii Barem de evaluare şi de notare Pagina 2 din 2 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ă parcurge șirul din fișier, memorând valoarea curentă (crt), suma secvenței curente, s, și suma maximă întâlnită; pentru fiecare valoare negativă întâlnită se reinițializează suma cu 0. Suma maximă se actualizează, după caz, la fiecare pas. 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, citire a datelor, tratare a cazului nu exista, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.