Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2015 – varianta 5
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 și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 5 Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică Pagina 1 din 3 Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Limbajul C/C++ Varianta 5 Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică • 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. Expresia C/C++ alăturată are valoarea: (4p.) 4+5%7*2 a. 4 b. 8 c. 9 d. 14 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 m,n (numere naturale, m≤n) nr0 ┌pentru xm,n execută │ y0 │ zx │┌repetă ││ yy*10+z%10 ││ z[z/10] │└până când z=0 │┌dacă x=y atunci ││ nrnr+1 │└■ └■ scrie nr a) Scrieţi valoarea afişată dacă se citesc, în această ordine, numerele 997 și 1005. (6p.) b) Dacă pentru m se citește numărul 54321, scrieți cel mai mare număr care poate fi citit pentru n astfel încât, în urma executării algoritmului, valoarea afişată să fie 0. (4p.) c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind structura pentru...execută cu o structură de tip cât timp...execută. (6p.) d) Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
Subiectul · pagina 2
Ministerul Educaţiei și Cercetării Științifice
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 5
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
Pagina 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. În declarările alăturate, variabilele A și B memorează
coordonatele câte unui punct în sistemul de coordonate
xOy. Indicați expresia care are valoarea 1 dacă şi numai
dacă cele două puncte coincid. (4p.)
struct punct
{ int x,y;
}A,B;
a. A[x]==B[x] && A[y]==B[y] b. A.x==B.x && A.y==B.y
c. x[A]==x[B] && y[A]==y[B] d. x.A==x.B && y.A==y.B
2. Un graf orientat cu 5 vârfuri, numerotate de la 1 la 5, este
reprezentat alăturat. Numărul maxim de arce care se pot
elimina, astfel încât graful parţial obţinut să fie tare conex
este: (4p.)
a. 2 b. 3 c. 4 d. 5
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin vectorul de „taţi”
(4,4,0,3,6,3,2,7). Scrieți un lanţ elementar care are o extremitate în rădăcina
arborelui și cealaltă extremitate în una dintre frunzele acestuia. (6p.)
4. Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou bidimensional
cu 5 linii şi 5 coloane, numerotate de la 1 la 5, având iniţial toate elementele nule.
Fără a utiliza alte variabile decât cele menționate, scrieţi secvenţa de
instrucţiuni de mai jos, înlocuind punctele de suspensie astfel încât, în
urma executării secvenţei obţinute, variabila a să memoreze tabloul
alăturat.
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
.................. (6p.)
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
5. Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate numai
din litere mari și mici ale alfabetului englez și sunt separate prin câte un spațiu. Textul
reprezintă numele unei instituţii sau al unei organizaţii.
Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul precizat şi construieşte
în memorie, apoi afişează pe ecran, un şir de caractere ce reprezintă acronimul
corespunzător numelui citit. Acronimul este format din primul caracter al fiecărui cuvânt al
numelui care începe cu majusculă.
Exemplu: dacă şirul citit este
Universitatea de Arte Plastice BUCURESTI
se va obţine şirul
UAPB (10p.)Subiectul · pagina 3
Ministerul Educaţiei și Cercetării Științifice
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 5
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
Pagina 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. Utilizând metoda backtracking, se generează toate șiragurile formate din câte 5 pietre
distincte din mulţimea {opal, rubin, safir, smarald, topaz}. Două șiraguri sunt
distincte dacă pietrele sunt dispuse în altă ordine. Primele patru soluţii obţinute sunt, în
această ordine: (opal, rubin, safir, smarald, topaz), (opal, rubin, safir, topaz,
smarald), (opal, rubin, smarald, safir, topaz) şi (opal, rubin, smarald, topaz,
safir). Indicați soluția care trebuie eliminată din enumerarea următoare, astfel încât cele
rămase să apară în ordinea generării lor, pe poziții consecutive: (smarald, safir, opal,
topaz, rubin) (smarald, safir, topaz, opal, rubin) (smarald, safir, topaz,
rubin, opal) (smarald, topaz, opal, rubin, safir). (4p.)
a. (smarald, safir, opal, topaz, rubin) b. (smarald, safir, topaz, opal, rubin)
c. (smarald, safir, topaz, rubin, opal) d. (smarald, topaz, opal, rubin, safir)
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Subprogramul F este definit alăturat.
Scrieţi ce se afişează în urma apelului
de mai jos.
F(154678,3);
(6p.)
void F (long a, int b)
{ if(a*b!=0)
if(a%2==0)
{ cout<<a%10; | printf(”%d”,a%10);
F(a/10,b-1);
}
else
{ F(a/10,b+1);
cout<<a%10; | printf(”%d”,a%10);
}
}
3. Subprogramul DivImpar are doi parametri, a şi b, prin care primeşte două numere
naturale din intervalul [1,105]. Subprogramul returnează cel mai mare divizor comun
impar al numerelor a şi b.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă a=30 şi b=60, subprogramul returnează valoarea 15. (10p.)
4. Fişierul date.in conţine un şir de cel mult un milion de numere naturale din intervalul
[0,109], separate prin câte un spațiu. Șirul are cel puțin doi termeni pari și cel puțin doi
termeni impari.
Se cere să se afișeze pe ecran mesajul DA dacă șirul aflat în fișier are un subșir ordonat
crescător, format din toți termenii pari ai săi, și un subșir ordonat descrescător, format din
toți termenii impari ai săi. Dacă nu există două astfel de subșiruri, programul afișează pe
ecran mesajul NU. Pentru verificarea proprietății cerute utilizați un algoritm eficient din
punctul de vedere al timpului de executare și al memoriei necesare.
Exemplu: dacă fişierul date.in conţine numerele
7 2 5 2 4 3 8
se afişează pe ecran mesajul
DA
iar dacă fișierul conține numerele
5 2 7 2 4 3 8
se afişează pe ecran mesajul
NU
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 și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 5 Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică Barem de evaluare şi de notare 1 Examenul de bacalaureat naţional 2015 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 5 Filiera teoretică, profilul real, specializările: matematică-informatică matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică • 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: 2 6p. b) Răspuns corect: 54344 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ţ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. c 4p. 3. Pentru rezolvare corectă 6p. Se acordă câte 2p. pentru fiecare proprietate a lanțului (extremitate inițială, extremitate finală, lanț elementar) conform cerinței. 4. Pentru rezolvare corectă - acces corect la un element al tabloului - atribuire a valorilor indicate elementelor tabloului (*) 6p. 1p. 5p. (*) Se acordă numai 2p. dacă doar una dintre proprietățile tabloului (alternanță a valorilor binare în cadrul unei linii/coloane, toate elementele suport) este conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei și Cercetării Științifice Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 5 Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică Barem de evaluare şi de notare 2 5. Pentru program corect - declarare corectă a unei variabile care să memoreze un șir de caractere - citire a şirului - acces la un caracter al șirului - construire șir conform cerinței (*) - afişare a datelor - declarare variabile simple, corectitudine globală a programului1) 10p. 1p. 1p. 1p. 5p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (identificare a primei litere a unui cuvânt, identificare a unei majuscule, obținere a unui șir construit cu prima literă a unor cuvinte, caractere suport pentru acronim, construire în memorie). SUBIECTUL al III - lea (30 de puncte) 1. a 4p. 2. Răspuns corect: 864157 6p. Se acordă numai 3p. pentru răspuns parțial corect, care include secvența 864. 3. Pentru subprogram corect - antet subprogram (*) - determinare a numărului cerut (**) - instrucțiune de returnare a rezultatului - declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 2p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, declarare parametri de intrare) conform cerinței. (**) Se acordă câte 2p. pentru fiecare proprietate a numărului cerut (divizor comun, impar, maxim). 4. a) Pentru răspuns corect - coerenţă a explicării metodei (*) - explicare 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 - verificare a proprietății indicate pentru subșiruri (*,**) - afișare a mesajului conform cerinței - 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. dacă s-a verificat proprietatea cerută doar pentru unul dintre subșiruri sau dacă algoritmul este principial corect, dar nu conduce la rezultatul cerut pentru orice set de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)), care utilizează eficient memoria. O soluţie posibilă parcurge cel mult o dată fişierul memorând atât valoarea ultimului termen par, precum și pe cea a ultimului termen impar și comparându-le, după caz, cu valoarea termenului curent. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.