Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2010 – varianta 10
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 10 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 10 • 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. IndicaŃi care dintre expresiile C/C++ de mai jos are valoarea 1 dacă şi numai dacă numărul natural memorat în variabila întreagă n este divizibil cu 2 şi cu 7. (4p.) a. !( (n%2==1) || (n%7!=0) ) b. (n%2==0) && (n%7!=0) c. (n%2==0) || !(n%7==0) d. (n%7==2) && (n%2==7) 2. Se consideră algoritmul alăturat descris în pseudocod: S-a notat cu x%y restul împărŃirii numărului natural x la numărul natural nenul y şi cu [z] partea întreagă a numărului real z. a) ScrieŃi numărul afişat dacă pentru variabila n se citeşte valoarea 64598. (6p.) b) ScrieŃi toate numerele de exact trei cifre care pot fi citite pentru variabila n astfel încât, pentru fiecare dintre acestea, numărul afişat în urma executării algoritmului să fie 24. (4p.) citeşte n (număr natural nenul) m0 ┌repetă │ cn%10 │ n[n/10] │┌dacă c>5 atunci ││ c[c/2] │└■ │ mm*10+c └până când n=0 scrie m c) ScrieŃi în pseudocod un algoritm, echivalent cu cel dat, în care să se înlocuiască structura repetă...până când cu o structură repetitivă de alt tip. (6p.) d) ScrieŃi programul C/C++ corespunzător algoritmului dat. (10p.)
Subiectul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 10 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. Variabilele reale x şi y memorează coordonatele, în planul xOy, ale centrului unui cerc, punct aflat în primul cadran al planului. O expresie C/C++ care are valoarea 1, dacă şi numai dacă centrul cercului este egal depărtat de cele două axe ale sistemului de coordonate al planului xOy, poate fi: (4p.) a. x-y==0 b. x+y==0 c. x*x+y*y==0 d. x*y==0 2. O expresie C/C++ care are valoarea 1 este: (4p.) a. ceil(5)-1==floor(5) b. ceil(5.19)==floor(5.19) c. ceil(5.19)==ceil(5.91) d. ceil(5.19)==floor(5.91) ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare. 3. Se consideră variabila simbol, de tip char. ScrieŃi instrucŃiunile C/C++ prin care se afişează pe ecran mesajul Este cifra, dacă variabila memorează o cifră zecimală, sau mesajul Nu este cifra, în caz contrar. (6p.) 4. Se citeşte un număr natural n (n>1) şi se cere să se scrie cea mai mare putere la care apare un divizor în descompunerea în factori primi a lui n. Exemplu: dacă n=40, se afişează 3, deoarece 40=23⋅⋅⋅⋅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 10
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. Se consideră două tablouri unidimensionale A şi B: A=(21,16,12,7,3), iar
B=(49,11,10,5,1). În urma interclasării lor în ordine descrescătoare se obŃine tabloul cu
elementele: (4p.)
a. (49,16,12,7,3) b. (49,21,11,16,10,12,5,7,1,3)
c. (49,21,16,11,12,10,7,5,3,1) d. (49,21,16,12,11,10,7,5,3,1)
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.
4 3 2 1 0
3 2 1 0
2 1 0
1 0
0 (6p.)
3. ScrieŃi un program C/C++ care citeşte de la tastatură două numere naturale, n şi k
(3≤n≤20, 2≤k≤10), şi construieşte în memorie un tablou unidimensional ale cărui
elemente reprezintă, în ordine, cei n⋅⋅⋅⋅k termeni ai unui şir crescător, valori din mulŃimea
primelor n numere naturale nenule, fiecare astfel de număr fiind în şir de exact k ori.
Programul afişează pe ecran tabloul construit, numerele fiind separate prin câte un spaŃiu.
Exemplu: dacă n=4, k=3 atunci tabloul construit este:(1,1,1,2,2,2,3,3,3,4,4,4).
(10p.)
Fişierul BAC.TXT conŃine, în ordine crescătoare, cel puŃin două şi cel mult 10000 de
numere naturale. Numerele sunt separate prin câte un spaŃiu şi au cel mult 9 cifre fiecare.
Cel puŃin un număr din fişier este par.
a) ScrieŃi un program C/C++ care citeşte toate numerele din fişier şi, printr-un algoritm
eficient din punct de vedere al timpului de executare şi al memoriei utilizate, determină şi
afişează pe ecran, în ordine strict crescătoare, separate prin câte un spaŃiu, toate
numerele pare care apar în fişier. Fiecare număr se va afişa o singură dată. (6p.)
Exemplu: dacă fişierul are conŃinutul de mai jos
1 1 2 2 2 7 10 10 10 10 24
pe ecran se afişează, în această ordine, numerele 2 10 24.
4.
b) DescrieŃi î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, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 10 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 10 • 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) 44543 6p. b) 420 820 920 (*) 4p. (*) Numerele pot fi scrise în orice ordine. Se acordă câte 1p. pentru fiecare dintre primele două numere menŃionate corect şi 2p. pentru al treilea număr menŃionat corect. c) Pentru algoritm pseudocod corect - structură repetitivă corectă - echivalenŃa prelucrării realizate - algoritm complet - corectitudine globală 6p. 2p. 2p. 1p. 1p. d) Pentru program corect -declararea corectă a tuturor variabilelor -citire corectă -scriere corectă -structură repetitivă corectă -structură de decizie corectă -atribuiri corecte -corectitudinea globală a programului1) 10p. 2p. 1p. 1p. 2p. 2p. 1p. 1p. SUBIECTUL al II-lea 30 de puncte 1) a 4p. 2) c 4p. 3) Pentru rezolvare corectă -determinarea unui simbol care memorează o cifră -afişarea corectă a mesajului, conform cerinŃei 6p. 4p. 2p. 4) a) Pentru rezolvare corectă - citirea datelor - scrierea principial corectă a structurilor de control (*) - determinarea puterii la care apare un factor prim în descompunerea cerută - determinarea corectă a numărului cerut - scrierea rezultatului 10 p. 2 p. 3 p. 2 p. 2 p. 1 p. (*) Se va puncta orice formă corectă de structură repetitivă (de exemplu execută…cât timp, execută… până când, repetă…până când etc.) sau decizională
Baremul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 10 Specializarea ştiinŃe ale naturii 2 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) d 4p. 2) Pentru răspuns corect (*) (**) 6p. (*) O soluŃie posibilă reprezintă transpunerea în limbaj de programare a instrucŃiunii pseudocod: ┌pentru i0, 4 execută │ ┌pentru j4-i, 0, -1 execută │ │ scrie j, “ “ │ └■ │ salt la rândul următor └■ (**) Se acordă câte 2p. pentru fiecare valoare limită a contorului determinată corect. 3) Pentru program corect - declarare corectă a variabilelor (tablou şi variabile simple) - citirea datelor - accesul corect la un element al tabloului - generarea unui subşir de k termeni egali - generarea celor n*k termeni ai şirului - memorarea în tablou a tuturor numerelor indicate, conform cerinŃei - afişarea datelor, conform cerinŃei - corectitudinea globală a subprogramului1) 10p. 1+1p. 1p. 1p. 1p. 2p. 1p. 1p. 1p. a) Pentru program corect - operaŃii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - afişarea numerelor conform cerinŃei (*) - utilizarea unui algoritm eficient (**) - declarare de variabile, corectitudinea globală a programului1) 6p. 1p. 2p. 2p. 1p. (*) Se acordă punctajul chiar dacă soluŃia propusă nu prezintă elemente de eficienŃă (**) Punctajul se acordă numai pentru un algoritm liniar (de complexitate O(n)), care nu utilizează un tablou. 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. 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă. 1) Corectitudinea globală vizează structura, sintaxa şi alte greşeli neprecizate în barem.