Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2016 – 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 Naționale și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 10 Limbajul C/C++ Filiera teoretică, profilul real, specializarea ştiinţe ale naturii 1 Examenul de bacalaureat național 2016 Proba E. d) Informatică Limbajul C/C++ Varianta 10 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 x este de tip întreg. Indicaţi o expresie C/C++ care are valoarea 1 dacă şi numai dacă valoarea variabilei x are exact trei cifre. (4p.) a. x%1000==0 || x%100!=0 b. x/1000==0 || x/100!=0 c. x%1000==0 && x%100!=0 d. x/1000==0 && x/100!=0 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. citeşte m,n,x (numere natural nenule, m<n) p0 ┌cât timp m<n şi p=0 execută │┌dacă m%x=0 şi n%x=0 atunci ││ px ││altfel ││┌dacă m%x=0 atunci │││ nn-1 │││altfel │││ mm+1 ││└■ │└■ └■ scrie m,’ ’,n a) Scrieţi valorile afişate în urma executării algoritmului dacă se citesc, în această ordine, numerele 11, 30 și 7. (6p.) b) Scrieţi un set de valori care pot fi citite pentru variabilele m, n şi x, astfel încât, în urma executării algoritmului, să se afişeze două numere egale. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind structura cât timp...execută 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 Naționale și Cercetării Științifice
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 10
Limbajul C/C++
Filiera teoretică, profilul real, specializarea ştiinţe ale naturii
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 x, y, z şi p sunt de tip real. O transcriere
în limbajul C/C++ a expresiei alăturate este: (4p.) ∙ − ∙ − ∙ −
a. pow(p(p-x)(p-y)(p-z),1/2) b. pow(p*p-p*x,1/2)*pow(p-y)*pow(p-z)
c. sqrt(p)*(p-x)*(p-y)*(p-z) d. sqrt(p*(p-x)*(p-y)*(p-z))
2. Variabilele x, y şi z sunt de tip întreg şi memorează
numere naturale, iar x şi y au inițial valori nenule. Indicați o
expresie care poate înlocui punctele de suspensie astfel
încât, în urma executării secvenței obţinute, variabila z să
memoreze produsul valorilor memorate inițial în x și y.
(4p.)
z=0;
while(x>0)
{ z=..........;
x=x-1;
}
a. z+y b. z-y c. z+x d. z-x
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. O persoană deține două mașini, pentru fiecare cunoscându-se codul și anul fabricației.
Cele două mașini sunt fabricate în ani diferiți.
Variabilele întregi an1 și cod1 memorează anul fabricației, respectiv codul primei mașini,
iar variabilele întregi an2 și cod2 memorează anul fabricației, respectiv codul celei de a
doua mașini.
Scrieți o secvență de instrucțiuni C/C++ în urma executării căreia se afișează pe ecran date
despre mașina cea mai nouă dintre cele două menționate mai sus: anul fabricației, urmat
de mesajul prototip, în cazul în care codul acesteia este 0, sau de mesajul produs de
serie, altfel. (6p.)
4. Se citeşte un număr natural cu toate cifrele nenule, n, şi se cere să se scrie numărul
obţinut prin eliminarea tuturor cifrelor impare din n, respectiv -1 dacă nu există astfel de
cifre sau dacă toate cifrele lui n sunt impare.
Exemplu: dacă n= 23541 se scrie 24, iar dacă n=28 se scrie -1.
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.)Subiectul · pagina 3
Ministerul Educaţiei Naționale și Cercetării Științifice
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 10
Limbajul C/C++
Filiera teoretică, profilul real, specializarea ştiinţe ale naturii
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 cel mai mare divizor comun al unui şir de numere naturale nenule citite de
la tastatură, se poate aplica: (4p.)
a. algoritmul de determinare a unui element
din şirul lui Fibonacci
b. algoritmul lui Euclid
c. metoda bulelor d. metoda interclasării
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. În secvenţa alăturată toate variabilele sunt de tip
întreg. Scrieţi secvența înlocuind punctele de
suspensie astfel încât, în urma executării
secvenţei obţinute, valoarea variabilei p să fie 1,
dacă s-au citit doar numere strict pozitive, sau 0
altfel. (6p.)
p=............;
for(i=1;i<=10;i++)
{ cin>>x; | scanf(”%d”,&x);
..............
}
3. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural, n (n∈∈∈∈[2,102]), și
construieşte în memorie un tablou unidimensional cu n elemente, numerotate de la 1 la n,
astfel:
• primul element este nul;
• elementele de pe poziții pare sunt egale cu valoarea poziției pe care se află;
• oricare alt element este obţinut prin însumarea celor două elemente aflate imediat
înaintea sa, ca în exemplu.
Elementele tabloului obținut sunt afișate pe ecran, separate prin câte un spaţiu.
Exemplu: pentru n=11 se obține tabloul (0,2,2,4,6,6,12,8,20,10,30) (10p.)
4. Fişierul numere.in conţine un şir de numere naturale din intervalul [1,109]. Numerele
din şir sunt ordonate strict crescător şi sunt separate prin câte un spaţiu.
Se cere să se determine valorile naturale distincte din intervalul închis delimitat de prima și
ultima valoare din șir care NU se găsesc în fișier. Valorile determinate se afişează pe
ecran în ordine strict crescătoare, separate prin câte un spaţiu. Dacă nu există astfel de
valori, se afişează pe ecran mesajul Nu exista.
Pentru determinarea valorilor cerute se utilizează un algoritm eficient din punctul de
vedere al memoriei şi al timpului de executare.
Exemplu: dacă fişierul conţine numerele
2 3 6 8
se afişează pe ecran valorile
4 5 7
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 Naționale și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 10 Filiera teoretică, profilul real, specializarea ştiinţe ale naturii Barem de evaluare şi de notare 1 Examenul de bacalaureat naţional 2016 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 10 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: 14 28 6p. b) Pentru răspuns corect 4p. 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ă conform cerinţei, 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 variabile -citire date -afişare date -instrucţiuni de decizie conform cerinței (*) -instrucţiune repetitivă conform cerinței -atribuiri corecte -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 2p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiuni este conform cerinței. SUBIECTUL al II - lea (30 de puncte) 1. d 4p. 2. a 4p. 3. Pentru rezolvare corectă -afișare a anului de fabricație cerut -afișare mesaje conform cerinței (*) 6p. 2p. 4p. (*) Se acordă numai 2p. dacă s-au afișat mesajele indicate, dar nu conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Naționale și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 10 Filiera teoretică, profilul real, specializarea ştiinţe ale naturii Barem de evaluare şi de notare 2 4. a) Pentru rezolvare corectă -citire a datelor -obţinere a unui număr conform cerinţei (*) -scriere principial corectă a structurilor de control (**) -scriere a rezultatului 10p. 1p. 6p. 2p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (acces la o cifră a numărului, cifre pare/impare, cifre suport, obținere rezultat pentru număr cu cifre pare și impare, obținere rezultat pentru număr doar cu cifre pare, obținere rezultat pentru număr doar cu cifre impare). (**) Se va puncta orice formă corectă de structură repetitivă sau decizională. b) Pentru răspuns corect -precizare a rolului variabilelor utilizate (*) -date de intrare indicate conform cerinței -date de ieșire indicate conform cerinței 6p. 2p. 2p. 2p. (*) Se acordă numai 1p. dacă s-au identificat doar o parte din variabilele utilizate sau dacă nu pentru toate variabilele este corect precizat rolul acestora. SUBIECTUL al III - lea (30 de puncte) 1. b 4p. 2. Pentru răspuns corect -înlocuire a punctelor de suspensie din prima zonă -înlocuire a punctelor de suspensie din cea de a doua zonă -corectitudine globală a secvenței1) 6p. 2p. 3p. 1p. 3. Pentru program corect -declarare a unei variabile care să memoreze un tablou unidimensional -citire a datelor -construire a tabloului conform cerinței (*) -afişare a datelor -declarare variabile simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (plasare valoare pe prima poziție, plasare valori pe poziții pare, plasare valori pe celelalte poziții ale tabloului). 4. a) Pentru răspuns corect -coerenţă a descrierii metodei (*) -justificare a unor elemente de eficienţă 4p. 2p. 2x1p. (*) 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 -determinare și afișare a valorilor cerute (*, **) -tratare a cazului Nu exista -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ă numai 2p. pentru un algoritm principial corect, dar care nu conduce la rezultatul cerut. (***) Se acordă punctajul numai pentru un algoritm liniar, care utilizează eficient memoria. O soluţie posibilă parcurge numerele din fișier memorând, la fiecare pas, ultimele două numere citite, x și y, și afișând toate numerele naturale din intervalul (x,y). 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.