Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2010 – varianta 8
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, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 8 Specializarea ştiinŃe ale naturii Limbajul C/C++ 1 Examenul de bacalaureat 2010 Proba E-d) Proba scrisă la INFORMATICĂ Limbajul C/C++ Specializarea ştiinŃe ale naturii Varianta 8 • Toate subiectele (I, II şi III) sunt obligatorii. Se acordă 10 puncte din oficiu. • Timpul efectiv de lucru 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ă). SUBIECTUL I (30 de puncte) Pentru itemul 1, scrieŃi pe foaia de examen litera corespunzătoare răspunsului corect. 1. Se consideră definite trei variabile de tip int: x, y şi z. O expresie C/C++ care are valoarea 1 dacă şi numai dacă x, y şi z au valori identice este: (4p.) a. x==y && x==z b. x==y==z c. x==y || x==z || y==z d. !( x!=y && x!=z) 2. Se consideră algoritmul alăturat descris în pseudocod. a) ScrieŃi numărul afişat în urma executării algoritmului dacă pentru n se citeşte valoarea 6. (6p.) b) ScrieŃi o valoare care poate fi citită pentru n astfel încât să se afişeze valoarea 55. (4p.) c) ScrieŃi în pseudocod un algoritm, echivalent cu cel dat, care să conŃină o singură structură repetitivă. (6p.) d) ScrieŃi programul C/C++ corespunzător algoritmului dat. (10p.) citeşte n (număr natural nenul) s0 ┌pentru i1,n execută │ a0 │ b1 │ j1 │ ┌cât timp j<i execută │ │ r2*b-a │ │ ab │ │ br │ │ jj+1 │ └■ │ ss+b └■ scrie s
Subiectul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 8 Specializarea ştiinŃe ale naturii Limbajul C/C++ 2 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. O expresie C/C++ care are valoarea 1 este: (4p.) a. floor(7)+1==ceil(7) b. floor(7.19)==ceil(7.19) c. floor(7.19)==floor(7.91) d. floor(7.91)==ceil(7.19) Se consideră variabilele x, y, z şi w care memorează câte un număr real, astfel încât expresia C/C++ alăturată are valoarea 1. x<y && z<w && w<x2. Variabila care are ca valoare cel mai mare dintre numerele menŃionate mai sus este: (4p.) a. x b. y c. z d. w ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare. 3. Variabilele i şi s sunt întregi. RescrieŃi secvenŃa de instrucŃiuni alăturată, completând zona punctată astfel încât, în urma executării secvenŃei obŃinute, variabila s să memoreze suma divizorilor lui 2500 din intervalul [25,79]. (6p.) s=0; for(i=79;i>=25;i--) .......... 4. Se citeşte un număr natural nenul şi se cere să se scrie numărul de cifre distincte din scrierea acestuia. Exemplu: dacă numărul citit este 1612325, valoarea obŃinută este 5. a) ScrieŃi, în pseudocod, algoritmul de rezolvare pentru problema enunŃată. (10p.) b) MenŃionaŃi rolul tuturor variabilelor care au intervenit în prelucrarea 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, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la INFORMATICĂ Varianta 8
Specializarea ştiinŃe ale naturii Limbajul C/C++
3
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scrieŃi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Pentru a calcula în mod eficient media aritmetică a elementelor unui tablou unidimensional
cu n componente numere naturale, toate egale, este necesar şi suficient să se execute:(4p.)
a. o singură instrucŃiune de atribuire b. o singură parcurgere a tabloului şi o
singură atribuire
c. o singură parcurgere a tabloului şi două
atribuiri
d. două parcurgeri ale tabloului
ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare.
În secvenŃa alăturată de instrucŃiuni,
variabilele i şi j sunt de tip întreg.
for(i=0;i<=4;i++){
for(.....)
cout<<j<<' '; | printf("%d ",j);
cout<<endl; | printf("\n");
}
2.
RescrieŃi secvenŃa, completând zona punctată astfel încât, în urma executării secvenŃei
obŃinute, să se afişeze pe ecran, în această ordine, numerele de mai jos.
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0 (6p.)
3. Se consideră şirul s, construit după regula
alăturată.
ScrieŃi un program C/C++ care citeşte de la tastatură un număr natural n (3<n<20) şi
construieşte în memorie un tablou unidimensional care memorează primii n termeni ai
şirului s, definit după regula de mai sus, astfel încât numerele impare să ocupe primele
poziŃii în tablou, iar cele pare să fie memorate în continuarea celor impare. Programul
afişează pe ecran elementele tabloului construit, separate prin câte un spaŃiu.
Exemplu: dacă n=6, primii şase termeni ai şirului sunt 1, 1, 2, 5, 13, 34, iar tabloul
construit poate fi (1,1,5,13,2,34). (10p.)
Fişierul bac.in conŃine pe prima linie un număr natural n (3<n<1000), iar pe
următoarea linie, un şir de n numere naturale distincte, de cel mult nouă cifre fiecare.
Numerele din şir sunt separate prin câte un spaŃiu şi cel puŃin două dintre ele au ultima
cifră egală cu 5.
a) ScrieŃi un program C/C++ care citeşte toate numerele din fişier şi, utilizând un algoritm
eficient din punct de vedere al timpului de executare şi al memoriei utilizate, determină şi
afişează pe ecran cele mai mari două numere din şir care au ultima cifră egală cu 5.
Numerele determinate sunt afişate în ordine crescătoare, separate printr-un spaŃiu. (6p.)
4.
Exemplu: dacă fişierul bac.in are conŃinutul
alăturat, pe ecran se vor afişa, în această ordine,
numerele: 25 85
10
97 5 11 1 8 6 85 3 25 15
b) DescrieŃi succint, în limbaj natural (3-4 rânduri), algoritmul utilizat la punctul a) şi
justificaŃi eficienŃa acestuia. (4p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul EducaŃiei, Cercetării şi Inovării Centrul NaŃional pentru Curriculum şi Evaluare în ÎnvăŃământul Preuniversitar Probă scrisă la INFORMATICĂ Varianta 8 Specializarea ştiinŃe ale naturii 1 Examenul de bacalaureat 2010 Proba E-d) Proba scrisă la INFORMATICĂ Specializarea ştiinŃe ale naturii Subiecte 2009 BAREM DE CORECTARE ŞI DE NOTARE (comun pentru limbajele Pascal şi C/C++) Varianta 8 • Nu se acordă punctaje intermediare, altele decât cele precizate explicit prin barem. Nu se acordă fracŃiuni de punct. • Se punctează oricare alte formulări/ modalităŃi de rezolvare corectă a cerinŃelor. • Se acordă 10 puncte din oficiu. Nota finală se calculează prin împărŃirea punctajului total acordat pentru lucrare la 10. • În programele cerute, datele de intrare se consideră corecte, validarea acestora nefiind necesară. • 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. a 4p. 2. a) 21 6p. b) 10 4p. c) Pentru program pseudocod corect - echivalenŃa prelucrării realizate (*) (**) - echivalenŃa celor doi algoritmi - corectitudine globală a algoritmului1) 6p. 4p. 1p. 1p. (*) O soluŃie posibilă se obŃine prin înlocuirea secvenŃei ┌pentru i1,n execută │ ... └■ cu secvenŃa: ┌pentru i1,n execută │ ss+i └■ sau cu secvenŃa: b0 ┌pentru i1,n execută │ bb+1; ss+b └■ Pentru soluŃia s[n*(n+1)/2] care determină rezultatul corect, dar nu conŃine o structură repetitivă, conform cerinŃei, se acordă numai 2p. (**) Se acordă punctajul pentru utilizarea corectă a oricărui tip de structură repetitivă. d) Pentru program corect -declararea corectă a tuturor variabilelor (*) -citire corectă -scriere corectă -structuri repetitive corecte -atribuiri corecte -corectitudinea globală a programului1) 10p. 2p. 1p. 1p. 2x2p. 1p. 1p. (*) Se acordă numai 1p. dacă se declară corect numai o parte dintre variabilele utilizate. SUBIECTUL al II-lea 30 de puncte 1) c 4p. 2) b 4p. 3) Pentru răspuns corect - calculul sumei cerute în variabila indicată (*) - corectitudinea globală a secvenŃei1) 6p. 4p. 2p. (*) Se acordă punctajul şi dacă variabila are valoarea corectă, dar aceasta a fost obŃinută prin calcul direct, fără a determina divizorii ceruŃi în cadrul secvenŃei.
Baremul · pagina 2
Ministerul EducaŃiei, Cercetării şi Inovării Centrul NaŃional pentru Curriculum şi Evaluare în ÎnvăŃământul Preuniversitar Probă scrisă la INFORMATICĂ Varianta 8 Specializarea ştiinŃe ale naturii 2 a) Pentru rezolvare corectă - citirea numărului cerut - accesarea corectă a ultimei cifre a unui număr - accesarea corectă a tuturor cifrelor numărului dat - determinarea corectă a numărului cerut (*) - scrierea principial corectă a structurilor de control (**) - scrierea rezultatului 10 p. 2p. 1p. 1p. 3p. 2p. 1p. (*) Se acordă numai 1p. dacă se determină numărul de cifre, nu neapărat distincte. (**) Se punctează orice formă corectă de structură repetitivă (de exemplu cât timp ... execută, repetă...cât timp, execută...până când, repetă...până când etc.) sau decizională. 4) b) Pentru răspuns corect - menŃionarea rolului variabilelor utilizate (*) - date de intrare identificate corect - date de ieşire identificate corect 6 p. 2 p. 2 p. 2 p. (*) Se acordă numai 1p. dacă s-au identificat doar o parte din variabilele utilizate sau nu pentru toate variabilele este corect menŃionat rolul acestora. SUBIECTUL al III-lea 30 de puncte 1) a 4p. 2) Pentru răspuns corect (*) 6p. (*) O soluŃie posibilă o reprezintă transpunerea în limbaj de programare a instrucŃiunii pseudocod: ┌pentru i←←←←0,4 execută │ ┌pentru j←←←←i,0,-1 execută │ │ scrie j,” ” │ └■ │ salt la linie nouă └■ 3) Pentru program corect - declarare corectă a variabilelor (simple şi tablou) (*) - citirea datelor - accesul corect la un element al tabloului - generarea corectă a tuturor termenilor ceruŃi (**) (***) - poziŃionarea în tablou a elementelor pare ale şirului, conform cerinŃei - poziŃionarea în tablou a elementelor impare ale şirului, conform cerinŃei - afişarea elementelor tabloului - corectitudinea globală a subprogramului1) 10p. 1+1p. 1p. 1p. 1p. 2p. 2p. 1p. 1p. (*) Pentru limbajul Pascal se are în vedere şi definirea corectă a tipului de date necesar. (**) Se acordă punctajul şi dacă valorile generate nu au fost poziŃionate corect în tablou. (***) Pentru al treilea termen al şirului se acceptă o valoare calculată pe baza celor doi termeni anteriori, ca în exemplu, sau orice altă valoare. a) Pentru program corect - operaŃii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - determinarea corectă a unui număr care are ultima cifră egală cu 5 - determinarea şi afişarea celor mai mari două numere din fişier cu proprietatea cerută (*),(**) - utilizarea unui algoritm eficient (***) - declarare de variabile, corectitudinea globală a programului1) 6p. 1p. 1p. 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluŃia propusă nu prezintă elemente de eficienŃă. (**) Se acordă numai 1p. dacă s-a determinat corect doar cel mai mare număr din fişier. (***) Punctajul se acordă numai pentru un algoritm liniar (de complexitate O(n)), care utilizează eficient memoria. 4) b) Pentru răspuns corect - coerenŃa explicării metodei (*) - explicarea unor elemente de eficienŃă din punct de vedere al timpului de executare - explicarea unor elemente de eficienŃă din punct de vedere al memoriei utilizate 4p. 1p. 2p. 1p. (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă. 1) Corectitudinea globală vizează structura, sintaxa, alte greşeli neprecizate în barem