Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2018 – sesiunea august–septembrie, 23 august 2018, varianta 1
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 Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 1 Limbajul C/C++ Filiera teoretică, profilul real, specializarea științe ale naturii 1 din 3 Examenul de bacalaureat naţional 2018 Proba E. d) Informatică Limbajul C/C++ Varianta 1 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, y și z sunt de tip întreg și memorează câte un număr natural nenul. Dacă expresia C/C++ alăturată are valoarea 1, indicați șirul crescător format cu valorile acestor variabile, în ordinea precizată mai jos. (4p.) z<x && 2*z==3*y a. x, y, z b. y, z, x c. z, x, y d. z, y, x 2. Algoritmul alăturat este 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 [a] partea întreagă a numărului real a. citeşte n (număr întreg) m0 p1 x0 ┌dacă n<0 atunci │ n-n └■ ┌repetă │ cn%10 │ n[n/10] │┌dacă c>m atunci ││ mc │└■ │ xm*p+x │ pp*10 └până când n=0 scrie x a) Scrieţi numărul afişat dacă se citeşte valoarea 10523. (6p.) b) Scrieţi patru numere întregi care pot fi citite astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afișeze numărul 722. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat structura repetă...până când cu o structură repetitivă cu test inițial. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
Subiectul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 1 Limbajul C/C++ Filiera teoretică, profilul real, specializarea științe ale naturii 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. 1. Variabilele di și dj sunt de tip întreg. Indicați expresia C/C++ care are valoarea 1 dacă și numai dacă perechea (di,dj) este una dintre următoarele: (-2,-1), (-2,1), (-1,-2), (-1,2), (1,-2), (1,2), (2,-1), (2,1). (4p.) a. abs(di)+abs(dj)==3 b. abs(di)-abs(dj)==1 c. abs(di)*abs(dj)==2 d. abs(di)/abs(dj)==2 2. În secvențele de mai jos, notate cu S1, S2 și S3, toate variabilele sunt întregi, iar variabila n memorează un număr natural cu cel mult nouă cifre. //S1 if(n==0) p=1; else if (n%2==0) p=6; else p=4; //S2 p=1; for(i=1;i<=n;i++) p=(p*4)%10; //S3 p=1; for(i=1;i<=n;i++) p=(p%10)*4; Variabila p memorează ultima cifră a numărului 4n în urma executării, independent, a secvențelor: (4p.) a. S1 și S2 b. S1 și S3 c. S2 și S3 d. S1, S2 și S3 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Variabilele cat, rest și x sunt de tip întreg, iar variabila x memorează un număr natural. Scrieţi o secvență de instrucțiuni în urma executării căreia se memorează în variabilele cat și rest câtul și respectiv restul împărțirii întregi a numărului 2018 la numărul memorat în variabila x, dacă acesta este nenul, sau se afișează pe ecran mesajul impartire nepermisa, în caz contrar. (6p.) 4. Se citește un număr natural n (3≤n) și se cere să se afișeze cel mai mic număr natural x (n<x) care NU este prim, cu proprietatea că în intervalul [n,x] există un singur număr prim. Exemplu: dacă n=8, se afișează numărul 12. 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
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 1
Limbajul C/C++
Filiera teoretică, profilul real, specializarea științe ale naturii
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. Se consideră două tablouri unidimensionale A şi B: A=(21,18,14,11,4), iar
B=(46,17,14,8,3). În urma interclasării lor în ordine descrescătoare se obţine tabloul cu
elementele: (4p.)
a. (46,18,14,11,4) b. (46,21,17,18,14,14,8,11,3,4)
c. (46,21,18,17,14,14,11,8,4,3) d. (46,21,18,17,14,14,8,11,4,3)
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, iar numerele citite sunt naturale.
Scrieţi secvența înlocuind punctele de suspensie
astfel încât, în urma executării secvenţei
obţinute, valoarea variabilei nr să fie egală cu
numărul valorilor citite care sunt egale cu 2018.
(6p.)
nr=.........;
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,50]) și
un șir de n numere naturale din intervalul [1,109] și construiește în memorie un tablou
unidimensional cu n elemente, astfel încât, parcurgându-l de la dreapta la stânga, se
obține șirul citit, ca în exemplu. Programul afișează pe ecran elementele tabloului obținut,
separate prin câte un spațiu.
Exemplu: dacă n=4, iar șirul citit este 7 2 5 3, se obține tabloul (3,5,2,7). (10p.)
4. Primii termeni ai șirului definit alăturat
(unde n este un număr natural nenul)
sunt:
0, 3, 8, 18, 38, 78, 158, 318 ....
=
0 dacă n=1
3 dacă n=2
2∙∙∙∙ffffn-1+2 altfel
Se citește de la tastatură un număr natural x (x∈∈∈∈[0,109]), reprezentând valoarea unui
termen al şirului dat, şi se cere să se scrie în fişierul text bac.txt, în ordine strict
descrescătoare, separați prin câte un spațiu, toţi termenii şirului mai mici sau egali cu x.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei
utilizate.
Exemplu: dacă se citește numărul
158
fişierul bac.txt conţine numerele
158 78 38 18 8 3 0
a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)
b) Scrieţi programul C/C++ corespunzător algoritmului proiectat. (8p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 1 Filiera teoretică, profilul real, specializarea ştiinţe ale naturii Barem de evaluare şi de notare 1 din 2 Examenul de bacalaureat naţional 2018 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 1 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. b 4p. 2. a) Răspuns corect: 55533 6p. b) Pentru răspuns corect 4p. Se acordă câte 1p. pentru fiecare dintre numerele cerute (oricare patru dintre 722, -722, 712, -712, 702, -702). 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ă de structură repetitivă conform cerinței. d) Pentru program corect -declarare a variabilelor -citire a datelor -afişare a datelor -instrucţiuni de decizie corecte (*) -instrucţiune repetitivă corectă -atribuiri corecte -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 3p. 2p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile de decizie este conform cerinței. SUBIECTUL al II - lea (30 de puncte) 1. c 4p. 2. a 4p. 3. Pentru rezolvare corectă -atribuire a valorilor celor două variabile -afișare a mesajului indicat -corectitudine globală a secvenţei1) 6p. 2x2p. 1p. 1p.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 1 Filiera teoretică, profilul real, specializarea ştiinţe ale naturii Barem de evaluare şi de notare 2 din 2 4. a) Pentru rezolvare corectă -citire a datelor -determinare a numărului cu proprietatea cerută (*) -scriere principial corectă a structurilor de control (**) -scriere a rezultatului 10p. 1p. 6p. 2p. 1p. (*) Se acordă câte 3p. pentru fiecare aspect al cerinței (algoritm de determinare a unui număr prim, cel mai mic număr care nu este prim conform cerinței). (**) Se va puncta orice formă corectă de structură repetitivă sau decizională. b) Pentru răspuns corect -precizare a rolului variabilelor utilizate (*) -date de intrare precizate corect -date de ieşire precizate corect 6p. 2p. 2p. 2p. (*) Se acordă numai 1p. dacă s-au precizat doar o parte dintre variabilele utilizate sau dacă nu pentru toate variabilele este precizat rolul acestora. SUBIECTUL al III - lea (30 de puncte) 1. c 4p. 2. Pentru răspuns corect -instrucţiune de iniţializare a variabilei nr -instrucţiune de actualizare a variabilei nr -corectitudine globală a secvenţei1) 6p. 2p. 3p. 1p. 3. Pentru program corect -declarare a variabilei de tip tablou -citire a datelor -memorare a valorilor elementelor conform cerinței (*) -afişare a unui tablou -declararea tuturor variabilelor simple, corectitudinea globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 3p. pentru fiecare aspect al cerinței (toate numerele din șirul citit, numere în ordinea cerută). 4. a) Pentru răspuns corect -coerenţă a descrierii algoritmului (*) -justificare a unor elemente de eficienţă, conform cerinței 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. b) Pentru program corect -operaţii cu fişiere: declarare, pregătire în vederea scrierii, scriere în fişier -determinare a valorilor cerute (*, **) -utilizare a unui algoritm eficient (***) -citirea și afișare a datelor, declarare a tuturor variabilelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă numai 3p. dacă algoritmul este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)), care utilizează eficient memoria. O soluţie posibilă generează termenii șirului astfel: dacă w și x sunt termeni aflați pe poziții consecutive în șir, x fiind cunoscut/calculat, atunci w=[(x-2)/2]. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.