Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2016 – 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 Naționale ș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, specializarea ştiinţe ale naturii 1 Examenul de bacalaureat național 2016 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. Variabilele x şi y sunt de tip real. Expresia C/C++ alăturată este echivalentă cu expresia: (4p.) !(x>0 && y>0) a. x<=0 || y<=0 b. x<=0 && y<=0 c. x>0 || y>0 d. !(x>0) && !(y>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 şi cu [c] partea întreagă a numărului real c. citeşte n (număr natural nenul) p0 ┌pentru i1,n execută │ mi │┌cât timp m%2=0 execută ││ m[m/2] │└■ │┌dacă m=1 atunci ││ pi │└■ └■ scrie p a) Scrieţi valoarea afişată în urma executării algoritmului dacă se citeşte numărul 12. (6p.) b) Scrieţi cel mai mic şi cel mai mare număr care pot fi citite astfel încât, pentru fiecare dintre acestea, valoarea afişată să fie 16. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind structura pentru...execută cu o structură repetitivă cu test final. (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 9
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. Indicați o expresie C/C++ care are valoarea 1 dacă şi numai dacă numărul întreg memorat
în variabila întreagă x aparţine mulţimii {-2,-1,1,2}. (4p.)
a. abs(x)>2 || x==0 b. abs(x)<=2 && x!=0
c. abs(x-2)<1 d. abs(x-1)>2
2. Variabilele x, y şi d sunt de tip întreg și memorează câte un
număr natural strict pozitiv. Indicați o expresie care poate
înlocui punctele de suspensie astfel încât, în urma executării
secvenţei obţinute, variabila d să memoreze cel mai mare
divizor comun al valorilor memorate în variabilele x şi y. (4p.)
d=x;
if(d>y) d=y;
while(........)
d=d-1;
a. x%d+y%d!=0 b. x%d!=y%d
c. (x+y)%d!=0 d. (x%d)*(y%d)!=0
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Se consideră două puncte A şi B din planul definit de sistemul de coordonate xOy.
Coordonatele punctului A sunt memorate în variabilele întregi xa (abscisa) şi ya
(ordonata), iar coordonatele punctului B sunt memorate în variabilele întregi xb (abscisa) şi
yb (ordonata). Niciunul dintre cele două puncte nu se află în originea sistemului.
Scrieţi o expresie C/C++ care să aibă valoarea 1 dacă şi numai dacă punctul A este situat
pe axa Oy, iar punctul B este situat pe axa Ox a sistemului de coordonate. (6p.)
4. Se citeşte un număr natural, n (n≥1), şi se cere să se scrie numărul obţinut prin duplicarea
fiecărei cifre pare a lui n sau -1 dacă acesta nu are nicio cifră pară.
Exemplu: dacă n=2380 se scrie
2238800
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 9
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. Tablourile unidimensionale A şi B au elementele: A=(20,17,12,10,3), iar
B=(45,16,12,7,2). În urma interclasării lor în ordine descrescătoare se obţine tabloul cu
elementele: (4p.)
a. (45,17,12,10,3) b. (45,20,16,17,12,12,7,10,2,3)
c. (45,20,17,16,12,12,10,7,3,2) d. (45,20,17,16,12,12,7,10,3,2)
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 s să fie
egală cu suma numerelor întregi citite care au
cel mult două cifre. (6p.)
s=.........;
for(i=1;i<=10;i++)
{ cin>>x; | scanf(“%d”,&x);
if(.............)
s=s+x;
}
3. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural, n (n∈∈∈∈[2,102]), și
numere naturale din intervalul [0,1000], în această ordine: cele n elemente ale unui
tablou unidimensional și un număr x. Prima poziție a tabloului este 0.
Programul afişează pe ecran mesajul DA, dacă există cel puțin un element egal cu x aflat
pe pozițiile impare ale tabloului sau mesajul NU în caz contrar.
Exemplu: pentru n=5, tabloul (1,3,4,2,6) şi x=2,
se afişează pe ecran mesajul
DA
iar pentru n=5, tabloul (1,12,2,4,6) sau tabloul (1,3,12,4,6) şi x=2,
se afişează pe ecran mesajul
NU (10p.)
4. Fişierul bac.txt conţine un şir de cel mult 106 numere naturale distincte din intervalul
[0,109]. Numerele din şir sunt separate prin câte un spaţiu.
Se cere să se determine ultimii doi termeni pari din şirul aflat în fișier care sunt precedați
de doar un termen impar. Termenii determinați se afișează pe ecran, în ordinea apariţiei
lor în şir, separați printr-un spațiu, iar dacă în şir nu există doi astfel de termeni, pe ecran
se afişează mesajul Nu exista.
Pentru determinarea termenilor ceruţi se utilizează un algoritm eficient din punctul de
vedere al spațiului de memorie şi al timpului de executare.
Exemplu: dacă fişierul conţine numerele
4 16 5 12 14 30 212 16 11 400
se afişează pe ecran
212 16
(4 și 16 sunt precedate de 0 numere impare, 12, 14, 30, 212 și 16 sunt precedate
de 1 număr impar, iar 400 este precedat de 2 numere impare; dintre numerele 12, 14,
30, 212 și 16 ultimele două sunt 212 și 16).
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 9 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 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. a 4p. 2. a) Răspuns corect: 8 6p. b) Răspuns corect: 16 31 4p. Se acordă câte 2p. pentru fiecare valoare menţionată corect. 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 variabile -citire date -afişare date -instrucţiune de decizie conform cerinței -instrucţiuni repetitive conform cerinței (*) -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 conform cerinței. SUBIECTUL al II - lea (30 de puncte) 1. b 4p. 2. a 4p. 3. Pentru rezolvare corectă -condiție conform cerinței pentru punctul A -condiție conform cerinței pentru punctul B -operatori logici utilizați conform cerinței 6p. 2p. 2p. 2p.
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 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 -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 2p. pentru fiecare aspect al cerinței (duplicare a unei cifre, cifre suport, tratare caz -1). (**) 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. c 4p. 2. Pentru răspuns corect -înlocuire a punctelor de suspensie corespunzătoare instrucțiunii de atribuire -înlocuire a punctelor de suspensie corespunzătoare instrucțiunii de decizie (*) -corectitudine globală a secvenței1) 6p. 2p. 3p. 1p. Se acordă doar 2p. dacă este respectată condiţia doar pentru numere pozitive sau doar pentru numere negative. 3. Pentru program corect -declarare a unei variabile de tip tablou unidimensional -citire a elementelor tabloului -verificare a proprietății cerute (*) -afişare a mesajului conform cerinței -declarare variabile simple, citire valori variabile simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 3p. pentru fiecare aspect al cerinței (algoritm principial corect de verificare a unei proprietăți, poziții suport). 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 (de complexitate O(n)), care utilizează eficient memoria. O soluţie posibilă parcurge fișierul până când s-a întâlnit un termen impar. Se parcurge apoi fișierul în continuare până la final sau până când se întâlnește un nou termen impar, memorând pe parcurs ultimele două valori pare citite. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.