Textul subiectului și baremului
Subiect BAC Informatică Științe ale Naturii C/C++ 2018 – sesiunea iunie–iulie, varianta 8, rezervă
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 8 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 8 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. Indicați expresia C/C++ care are valoarea 1 dacă și numai dacă oricare două dintre variabilele precizate au valori distincte. (4p.) a. (x-y)*(y-z)*(z-x) != 0 b. !(x==y && y==z) c. x!=y || y!=z || z!=x d. (x<y || y<z) && (x>y || y>z) 2. Algoritmul alăturat este reprezentat în pseudocod. citește a,b (numere naturale, a<b) u0 ka ┌cât timp k≤b execută │ s0 │ t1 │┌cât timp t*t≤k execută ││ ss+t*t ││ tt+1 │└■ │┌dacă s≠u atunci ││ scrie s, ’ ’ ││ us │└■ │ kk+1 └■ a) Scrieţi ce se afişează dacă se citesc, în această ordine, numerele 2 și 6. (6p.) b) Dacă pentru variabila b se citeşte numărul 20, scrieţi patru numere care pot fi citite pentru variabila a, astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afișeze doar valoarea 30. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat una dintre structurile cât timp...execută cu o structură de tip pentru...execută. (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 8
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. Variabila x este de tip real și poate memora un număr real din
intervalul [45,55]. Numărul valorilor distincte pe care le poate
avea expresia C/C++ alăturată este: (4p.)
floor(sqrt(x))
a. 1 b. 2 c. 3 d. 4
2. În secvența C/C++ alăturată toate variabilele sunt întregi, iar
m>n. Expresia care poate înlocui punctele de suspensie,
astfel încât, în urma executării secvenţei obţinute, variabila r
să memoreze diferenţa m-n este:
(4p.)
r=0;
x=n;
y=m;
do
{ x=x+1;
y=y-1;
r=r+2;
}while(x<y);
if(x!=y)r=...;
a. r-2 b. r-1 c. r+1 d. r+2
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Variabilele ora_decolare, minut_decolare și durata sunt întregi și memorează date
referitoare la un zbor al unui avion, derulat în totalitate în aceeași zi, pe teritoriul României:
ora și minutul decolării, respectiv durata zborului, exprimată în minute. Ora este un număr
din intervalul [0,23], iar minutul un număr din intervalul [0,59]. Scrieţi o secvenţă de
instrucţiuni în urma executării căreia să se memoreze în variabilele întregi
ora_aterizare și minut_aterizare ora, respectiv minutul aterizării avionului. (6p.)
4. Se citesc două numere naturale n, cu cifre distincte și nenule (10<n), și k (k∈∈∈∈[0,9]) și se
cere să se transforme numărul n, rotind circular spre stânga cifrele acestuia, astfel încât
cifra k să devină cifra unităților lui n, ca în exemplu. Dacă cifra k nu este printre cifrele lui n
sau dacă este cifra unităţilor acestuia, numărul rămâne nemodificat. Numărul obținut se
afișează apoi pe ecran.
Exemplu: dacă n=3125847 și k=2, se obține numărul n=5847312, iar dacă n=3125847 și
k=6, se obține numărul 3125847.
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 8
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. Pentru a verifica dacă în tabloul unidimensional (7,9,11,14,16,18,20) există
elementul cu valoarea x, număr natural, se aplică metoda căutării binare. Pentru ca
succesiunea de elemente ale tabloului a căror valoare se compară cu valoarea lui x pe
parcursul aplicării metodei indicate să fie 14, 18, 16, mulțimea tuturor valorilor posibile ale
lui x este: (4p.)
a. {16} b. {14,16,18} c. {15,16,17} d. {20}
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 strict mai mici
decât 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,102]), și
alte numere naturale din intervalul [0,104]: cele n elemente ale unui tablou
unidimensional, apoi două numere distincte x și y. Programul modifică tabloul în memorie
înlocuind cu valoarea lui y fiecare număr x din tabloul citit și cu valoarea lui x fiecare
număr y din tabloul citit, celelalte elemente rămânând nemodificate. Programul afişează
apoi pe ecran elementele tabloului obținut, separate prin câte un spațiu, sau mesajul
nemodificat dacă nu s-a realizat nicio modificare.
Exemplu: pentru n=7, tabloul (0, 7, 0, 1, 0, 5, 1), x=0 și y=1
se obține tabloul (1, 7, 1, 0, 1, 5, 0). (10p.)
4. Se citeşte de la tastatură un număr natural, n (n∈∈∈∈[1,109]), şi se cere să se scrie în
fişierul text bac.txt, cel mai mare număr natural p cu proprietatea că numărul 4p este
divizor al numărului obținut prin evaluarea produsului 1·2·3·...·n.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei
utilizate.
Exemplu: dacă n=10, fişierul conţine numărul 4.
a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)
b) Scrieţi programul C/C++ corespunzător algoritmului descris. (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 8 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 8 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: 1 5 6p. b) Răspuns corect: 16, 17, 18, 19 4p. Se acordă câte 1p. pentru fiecare număr 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ă 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ţiune de decizie corectă -instrucţiuni repetitive corecte (*) -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 corectă. SUBIECTUL al II - lea (30 de puncte) 1. b 4p. 2. b 4p. 3. Pentru rezolvare corectă -determinare și memorare a valorilor cerute în variabilele indicate (*) -corectitudine globală a secvenţei1) 6p. 5p. 1p. (*) Se acordă numai 3p. dacă s-a determinat corect doar una dintre cele două valori cerute.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 8 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 -transformare a numărului conform cerinței (*) -scriere principial corectă a structurilor de control (**) -afișare a datelor 10p. 1p. 6p. 2p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (determinare a unei cifre a unui număr, algoritm de plasare în număr a cifrelor care preced cifra k în numărul inițial, algoritm de plasare în număr a cifrelor care succed cifra k în numărul inițial). (**) Se va puncta orice formă corectă de structură repetitivă sau decizională. b) Pentru răspuns corect -precizare a rolului variabilelor utilizate (*) -indicare a datelor de intrare - indicare a datelor de ieșire 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 -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 elementelor tabloului -accesare corectă a unui element al tabloului -modificare a tabloului conform cerinței (*) -afișare a rezultatului și tratare a cazului nemodificat -declarare a tuturor variabilelor simple, citire a datelor simple, corectitudine globală a programului1) 10p. 1p. 2p. 1p. 4p. 1p. 1p. (*) Se acordă câte 2p. pentru înlocuirea tuturor elementelor suport pentru fiecare dintre cele două valori indicate, conform cerinţei. 4. a) Pentru răspuns corect -coerenţă a descrierii metodei (*) -justificare a unor elemente de eficienţă, conform cerinței 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă. b) Pentru program corect -operaţii cu fişiere: declarare, pregătire în vederea scrierii, scriere în fişier -determinare a valorii cerute (*,**) -utilizare a unui algoritm eficient (***) -citire 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 de complexitate logaritmică sau liniară (O(log n), respectiv O(n)) care utilizează eficient memoria. O soluţie posibilă determină numărul x de apariții ale lui 2 în descompunerea în factori primi a numerelor din intervalul [1,n]. Valoarea cerută este [x/2]. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.