Textul subiectului și baremului
Model oficial BAC Informatică Științe ale Naturii C/C++ 2018
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ă MODEL 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++ MODEL 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. Știind că expresia C/C++ alăturată are valoarea 1, indicați șirul crescător format cu valorile acestor variabile, în ordinea precizată mai jos. (4p.) !(x>=y) && z>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. citeşte x,y (numere naturale, x≤y) b0 c1 ┌pentru zx,y execută │┌cât timp c<z execută ││ ab ││ bc ││ ca+b │└■ │┌dacă z=c atunci ││ scrie z,’ ’ │└■ └■ a) Scrieţi valorile afișate dacă se citesc, în această ordine, numerele 3 și 10. (6p.) b) Dacă pentru variabila x se citește numărul 18, scrieţi cel mai mic și cel mai mare număr care pot fi citite pentru variabila y astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afișeze o singură valoare. (4p.) c) Scrieţi în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat structura cât timp...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 Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică MODEL 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. Indicați cel mai mare număr pe care îl poate memora variabila întreagă x, astfel încât expresia C/C++ alăturată să aibă valoarea 1. (4p.) sqrt(x/10+x%10)==100 a. 91 b. 1009 c. 100000 d. 900001 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 din intervalul [2,102]. //S1 u=((n*n+n)%10)/2; //S2 u=0; for(i=1;i<=n;i++) u=(u+i)%10; //S3 u=1; for(i=2;i<=n;i++) u=u+i%10; Indicați secvențele în urma executării cărora variabila u NU memorează ultima cifră a sumei primelor n numere naturale nenule, distincte, pentru unele valori ale lui n din intervalul precizat. (4p.) a. S1 și S2 b. S2 și S3 c. S1 și S3 d. S1, S2 și S3 Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare. 3. Variabilele întregi an1 și luna1 memorează anul și luna cumpărării unei mașini, iar variabilele întregi an2 și luna2 memorează anul și luna cumpărării unei alte mașini. Scrieți o secvență de instrucțiuni C/C++ în urma executării căreia să se afișeze pe ecran mesajul LA FEL, dacă cele două mașini sunt cumpărate în aceeași lună a anului curent, sau mesajul DIFERIT dacă cele două mașini sunt cumpărate în anul curent, dar în luni diferite, sau mesajul VECHI în oricare alt caz. (6p.) 4. Se citește un număr natural, n (n≥2), și se cere să se scrie numerele x, y și z, divizori ai lui n, cu proprietatea că 0<x<y<z și x+y+z=n. Numerele se scriu în ordine strict crescătoare, separate prin câte un spațiu, iar dacă n nu are astfel de divizori, se scrie mesajul nu exista. Exemplu: pentru n=24 se scriu numerele 4 8 12 iar pentru n=9 se scrie mesajul nu exista 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ă MODEL
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ă într-un tablou unidimensional există elementul cu valoarea x=18, se
aplică metoda căutării binare, iar succesiunea de elemente ale tabloului a căror valoare se
compară cu valoarea lui x pe parcursul aplicării metodei indicate este: 50, 16, 18.
Elementele tabloului pot fi (în ordinea în care apar în tablou): (4p.)
a. (16,17,18,29,50,80,91) b. (5,16,18,50,56,70,85)
c. (8,9,10,16,18,45,50) d. (16,20,18,49,50,57,58)
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 ok să fie 1 dacă
toate valorile citite au fost strict mai mici decât
2018, sau 0 altfel. (6p.)
ok=.........;
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∈∈∈∈[3,50]), și
construiește în memorie un tablou unidimensional cu elemente din mulțimea {1,2}, astfel
încât, parcurgându-l de la stânga la dreapta, se obține un șir format din n secvențe de câte
trei elemente egale cu 2, aflate pe poziții consecutive, secvențe separate de câte un
element egal cu 1, ca în exemplu.
Programul afișează pe ecran elementele tabloului obținut, separate prin câte un spațiu.
Exemplu: dacă n=5, se obține tabloul
(2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2). (10p.)
4. Fișierul bac.txt conține cel mult 106 numere naturale din intervalul [10, 109], separate
prin câte un spațiu.
Se cere să se afișeze pe ecran, separate prin câte un spațiu, cifrele care apar o singură
dată în scrierea numerelor din fișier, sau mesajul nu exista dacă nu există nicio astfel
de cifră. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fişierul bac.txt conţine numerele
391 7772 4389 23939
atunci pe ecran se afișează valorile de mai jos, nu neapărat în această ordine:
1 4 8
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ă MODEL 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) MODEL 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: 3 5 8 6p. Se acordă câte 2p. pentru fiecare valoare conform cerinței. b) Răspuns corect: 21 33 4p. Se acordă câte 2p. pentru fiecare număr conform cerinței. 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 a tuturor variabilelor -citire a datelor -afişare a datelor -instrucţiune de decizie -instrucţiuni repetitive (*) -atribuiri -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. c 4p. 2. c 4p. 3. Pentru rezolvare corectă -expresii logice de identificare a cazurilor indicate (*) -afișare a mesajelor indicate (**) -corectitudine globală a secvenţei1) 6p. 3p. 2p. 1p. (*) Se acordă câte 1p. pentru fiecare caz conform cerinței identificat. (**) Se acordă numai 1p. dacă s-au afișat doar o parte dintre mesajele cerute.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică MODEL 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 tripletelor cu proprietatea cerută (*) -tratare a cazului nu exista -afișare a datelor în formatul cerut -scriere principial corectă a structurilor de control (***) 10p. 1p. 6p. 1p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare proprietate a numerelor x, y și z (divizori, 0<x<y<z, x+y+z=n) conform cerinței. (**) 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ă doar pentru o parte din variabilele utilizate rolul este corect precizat. SUBIECTUL al III - lea (30 de puncte) 1. b 4p. 2. Pentru răspuns corect -instrucţiune de iniţializare a variabilei ok -instrucţiune de actualizare a variabilei ok (*) -corectitudine globală a secvenţei1) 6p. 2p. 3p. 1p. (*) Se acordă numai 1p. dacă expresia de identificare a valorilor strict mai mici decât 2018 este corectă, dar actualizarea variabilei ok nu este conform cerinței. 3. Pentru program corect -declarare a variabilei de tip tablou -citire a datelor -memorare a valorilor elementelor (*) -afişare a unui tablou -declarare și citire a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect al cerinței (valori 1 care separă secvențele, valori 2 în secvențe conform cerinței, construire în memorie într-un tablou cu dimensiune adecvată). 4. a) Pentru răspuns corect -descriere coerentă a algoritmului (*) -justificare a unor elemente de eficienţă 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 citirii, citire din fişier -determinare a valorilor cerute (*, **) -afișare a datelor și tratare a cazului nu exista -utilizare a unui algoritm eficient (***) -afișare a datelor, declarare a tuturor variabilelor, corectitudine globală a programului1) 8p. 1p. 4p. 1p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă numai 2p. pentru algoritm principial corect, dar care nu conduce la rezultatul cerut pentru toate cazurile. (***) Se acordă punctajul numai pentru un algoritm liniar. O soluţie posibilă utilizează un vector de apariții, v, în care se actualizează numărul de apariții vi pentru fiecare cifră i, la parcurgerea fişierului și prelucrarea corespunzătoare a termenilor șirului. Numerele cerute corespund valorilor i pentru care vi are valoarea 1. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.