Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2015 – varianta 9
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 Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 9 Limbajul C/C++ Filiera teoretică, profilul real, ştiinţe ale naturii Pagina 1 din 3 Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Limbajul C/C++ Varianta 9 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. Variabila întreagă x memorează un număr natural cu cel puțin patru cifre nenule distincte. Expresia C/C++ a cărei valoare este egală cu cifra sutelor acestui număr este: (4p.) a. x/100 b. x%100 c. (x/10)%10 d. (x/100)%10 2. Se consideră algoritmul alăturat, 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,k (numere naturale, k>1) pm0 i1 ┌cât timp i≤n execută │ xi │ p0 │┌cât timp x%k=0 execută ││ x[x/k] ││ pp+1 │└■ │┌dacă p>pm atunci ││ pmp │└■ │ ii+1 └■ scrie pm a) Scrieţi valoarea afişată dacă se citesc, în această ordine, numerele 7 și 2. (6p.) b) Dacă pentru variabila k se citeşte numărul 5, scrieţi cea mai mică şi cea mai mare valoare care pot fi citite pentru variabila n astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, valoarea afişată să fie 3. (4p.) c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind prima structură cât timp...execută cu o structură repetitivă de tip pentru...execută. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
Subiectul · pagina 2
Ministerul Educaţiei și Cercetării Științifice
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 9
Limbajul C/C++
Filiera teoretică, profilul real, ştiinţe ale naturii
Pagina 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.
a. x=sqrt(x);
b. x=sqrt(sqrt(16));
c. cin>>sqrt(4); | scanf(”%f”,&sqrt(4));
d. cout<<sqrt(4)+1; | printf(”%f”,sqrt(4)+1);
2. În secvenţele de mai jos, notate cu S1 şi S2, toate variabilele sunt de tip întreg.
//secventa S1
while(x!=y)
if(x>y) x=x-y;
else y=y-x;
//secventa S2
while(y!=0)
{ x=x%y; z=y; y=x; }
Variabila x memorează cel mai mare divizor comun al celor două numere naturale nenule,
memorate iniţial în variabilele x şi y, în urma executării: (4p.)
a. numai a secvenţei S1 b. numai a secvenţei S2
c. atât a secvenţei S1 cât şi a lui S2 d. niciuneia dintre cele două secvenţe
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Variabila reală p memorează preţul unei cărţi. Scrieți o instrucțiune C/C++ prin care se
actualizează valoarea acestei variabile, astfel încât să reprezinte preţul cărţii respective
majorat cu 50%. (6p.)
4. Șirul lui Fibonacci (1, 1, 2, 3, 5, 8, 13, 21,…) se definește astfel:
f1=1, f2=1 și fi=fi-1+fi-2 pentru orice număr natural i, i≥3.
Se citește un număr natural nenul, n, și se cere să se scrie valoarea celui de al n-lea
termen impar al șirului lui Fibonacci.
Exemplu: dacă n=6, atunci se scrie numărul 21.
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.)
1. Variabila x este de tip real şi memorează un număr real pozitiv. O instrucţiune C/C++
incorectă din punct de vedere sintactic este: (4p.)Subiectul · pagina 3
Ministerul Educaţiei și Cercetării Științifice
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 9
Limbajul C/C++
Filiera teoretică, profilul real, ştiinţe ale naturii
Pagina 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 de
mai jos.
for(i=1;i<=5;i++)
{ for(j=1;j<=5;j++)
if(......) cout<<6-j<<” ”; | printf(”%d ”,6-j);
else cout<<6-i<<” ”; | printf(”%d ”,6-i);
cout<<endl; | printf(”\n”);
} (4p.)
5 4 3 2 1
4 4 3 2 1
3 3 3 2 1
2 2 2 2 1
1 1 1 1 1
a. i<j b. i>j c. i+j<5 d. i+j>5
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Se consideră tablourile unidimensionale A=(1,2,7,10,16) şi B=(15,10,9,8,3).
Scrieţi elementele tabloului C, în ordinea în care ele apar în tablou, astfel încât acesta să
fie obţinut prin interclasarea descrescătoare a elementelor din A şi B. (6p.)
3. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural, n (n∈∈∈∈[2,20]), apoi
cele n elemente ale unui tablou unidimensional, numere naturale din intervalul [0,109].
Programul determină transformarea în memorie a tabloului, permutând circular elementele
acestuia, de la stânga spre dreapta, cu o poziţie, ca în exemplu. Elementele tabloului
astfel obținut se afișează pe ecran, separate prin câte un spațiu.
Exemplu: pentru n=4 și tabloul (1,1,3,2) se obține tabloul (2,1,1,3). (10p.)
4. Fișierul bac.txt conține un șir de cel mult un milion de numere naturale din intervalul
[0,102], separate prin câte un spațiu.
Se cere să se afișeze pe ecran mesajul DA, dacă există cel puțin o pereche formată din
termeni ai șirului aflat în fișier, x și y (y-x≥2), astfel încât să nu existe niciun termen al
șirului care să aparțină intervalului (x,y). Dacă nu există nicio astfel de pereche, se
afișează pe ecran mesajul NU. Pentru verificarea proprietății cerute, utilizați un algoritm
eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele
5 9 0 8 10 11 12 13 15 14 6 7 40 10 0 0 5 41 95 7
atunci pe ecran se afișează mesajul
DA
deoarece intervalele (0,5), (15,40) sau (41,95) au proprietatea cerută.
a) Descrieți în limbaj natural algoritmul utilizat, justificând eficiența acestuia. (4p.)
b) Scrieți programul C/C++ corespunzător algoritmului descris. (6p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 9 Filiera teoretică, profilul real, specializarea ştiinţe ale naturii Barem de evaluare și de notare 1 Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 9 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. d 4p. 2. a) Răspuns corect: 2 6p. b) Răspuns corect: 125, 624 4p. Se acordă câte 2p. pentru fiecare valoare conform cerinței. 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 structură repetitivă de tipul indicat, principial corectă, dar nu este echivalent cu cel dat. Se va puncta orice formă corectă de structură repetitivă conform cerinței. d) Pentru program corect -declarare a tuturor variabilelor -citire corectă -afişare corectă -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ţiuni este corectă. SUBIECTUL al II - lea (30 de puncte) 1. c 4p. 2. a 4p. 3. Pentru rezolvare corectă 6p. Se acordă numai 3p. dacă expresia realizează calculul cerut, dar instrucțiunea de atribuire nu este conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 9 Filiera teoretică, profilul real, specializarea ştiinţe ale naturii Barem de evaluare și de notare 2 4. a) Pentru rezolvare corectă -citire a datelor -determinare a numărului cerut (*) -scriere principial corectă a structurilor de control (**) -scriere a rezultatului 10p. 1p. 6p. 2p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (termen al șirului, termen impar, număr de ordine - inclusiv cazul în care n<3). (**) Se va puncta orice formă corectă de structură repetitivă sau decizională. b) Pentru răspuns corect -precizare a rolului variabilelor utilizate (*) -indicare a datelor de intrare -indicare a datelor de ieşire 6p. 2p. 2p. 2p. (*) Se acordă numai 1p. dacă s-au identificat doar o parte dintre variabilele utilizate sau dacă nu pentru toate variabilele este corect precizat rolul acestora. SUBIECTUL al III – lea (30 de puncte) 1. a 4p. 2. Răspuns corect: (16,15,10,10,9,8,7,3,2,1) 6p. Se acordă câte 3p. pentru fiecare aspect al cerinței (elemente suport, ordine). 3. Pentru program corect -declarare a variabilei de tip tablou -citire a elementelor tabloului -memorare a valorilor elementelor conform cerinței (*) -afişare a datelor conform cerinței -declarare și citire a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (deplasare de la stânga spre dreapta a unor elemente ale tabloului, mutare a ultimului element al tabloului pe prima poziție a acestuia, obținere conform cerinței a tuturor elementelor tabloului). 4. a) Pentru răspuns corect -coerenţă a explicării metodei (*) -justificare a unor elemente de eficienţă 4p. 2p. 2p. (*) 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 -verificare a proprietății indicate (*,**) -afișare a mesajului cerut -utilizare a unui algoritm eficient (***) 6p. 1p. 3p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă câte 1p. pentru fiecare condiţie impusă unei perechi x,y (y-x≥2, interval (x,y) care să nu conțină niciun termen al șirului, algoritm principial corect de verificare a unei proprietăți). (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)). O soluţie posibilă utilizează un vector de apariții (în care vi este 1 dacă valoarea i apare în șir sau 0 altfel) actualizat pe măsura citirii datelor din fișier. Vectorul de apariții este parcurs cel mult o dată, după completarea sa, memorându-se la fiecare pas ultimii doi indici i și j (i<j) cu proprietatea că valorile vi și vj sunt nenule și j-i≥2. Dacă există doi astfel de indici, mesajul afișat este DA. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.