Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2014 – varianta 10
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 10 Limbajul C/C++ Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică Filiera vocaţională, profilul militar, specializarea matematică-informatică 1 Examenul de bacalaureat naţional 2014 Proba E. d) Informatică Limbajul C/C++ Varianta 10 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. Variabila x este de tip întreg și poate memora un număr natural cu cel mult două cifre. Valoarea maximă pe care o poate avea expresia C/C++ alăturată este: (4p.) x%7 a. 6 b. 14.14 c. 93 d. 693 2. Se consideră algoritmul alăturat, reprezentat în pseudocod. n0 ┌repetă │ citeşte x │ (număr natural) │ a0 │ b1 │┌repetă ││ ca+b ││ ab ││ bc │└până când c≥x │┌dacă x=c atunci ││ nn+1 │└■ └până când x=0 scrie n a) Scrieţi valoarea afişată dacă se citesc, în această ordine, numerele 10, 8, 11, 1, 21, 0. (6p.) b) Scrieţi un set de patru numere distincte din intervalul [0,9] care pot fi citite astfel încât, în urma executării algoritmului, să se afișeze valoarea 0. (4p.) c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, în care să se înlocuiască prima structură 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 10
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
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. Un arbore cu 4 noduri, numerotate de la 1 la 4, NU poate fi reprezentat prin vectorul de
„taţi”: (4p.)
a. (0,1,2,3) b. (2,1,0,3) c. (4,4,4,0) d. (2,3,4,0)
2. Se consideră un graf neorientat complet, cu 9 noduri. Pentru a obține un graf parțial al său
cu două componente conexe, fiecare dintre acestea fiind grafuri complete, numărul maxim
de muchii care pot fi eliminate este: (4p.)
a. 14 b. 18 c. 20 d. 24
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Se consideră graful orientat cu 6 vârfuri, numerotate de la 1 la 6,
reprezentat prin matricea de adiacență alăturată. Scrieți un drum
elementar din graf, cu extremitatea inițială în vârful 4 și extremitatea
finală în vârful 6. (6p.)
0 0 0 0 1 0
1 0 0 1 0 1
0 0 0 0 1 0
1 0 0 0 1 0
0 1 0 0 0 0
0 0 0 0 1 0
4. Variabila s poate memora un șir cu maximum 20 de caractere, iar variabila i este de tip
întreg. Scrieți ce se afișează în urma executării secvenței de instrucțiuni de mai jos.
strcpy(s,"BACALAUREAT");
cout<<strlen(s); | printf("%d",strlen(s));
i=0;
while (i<strlen(s)-1)
{ if(strchr("EAIOU",s[i])!=NULL) strcpy(s+i+1,s+i+2);
i++;
}
cout<<s; | printf("%s",s); (6p.)
5. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale, m și n
(2≤m≤20, 2≤n≤20), şi construiește în memorie un tablou bidimensional A, cu m linii şi n
coloane, astfel încât parcurgându-l linie cu linie, de sus în jos, și fiecare linie de la stânga la
dreapta, să se obțină șirul primelor n·m numere naturale, pare, care NU sunt divizibile cu
5, ordonat strict crescător. Programul afișează pe ecran tabloul obținut, fiecare linie a
tabloului pe câte o linie a ecranului, elementele de pe aceeași linie fiind separate prin câte
un spațiu.
Exemplu: pentru m=4 şi n=3 se obține tabloul alăturat.
(10p.)
2 4 6
8 12 14
16 18 22
24 26 28Subiectul · pagina 3
Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 10
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
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 posibilitățile de a forma succesiuni de
câte 5 genuri muzicale distincte din mulțimea {jazz, rock, latino, house, pop}, astfel
încât în fiecare succesiune genul latino precede genul house. Două succesiuni sunt
distincte dacă genurile muzicale sunt în altă ordine.
Primele cinci soluţii generate sunt, în această ordine, (jazz, rock, latino, house, pop),
(jazz, rock, latino, pop, house), (jazz, rock, pop, latino, house), (jazz,
latino, rock, house, pop), (jazz, latino, rock, pop, house). Imediat înainte de
(pop, latino, house, jazz, rock) este generată soluția: (4p.)
a. (rock, jazz, house, latino, pop) b. (rock, jazz, latino, house, pop)
c. (pop, latino, rock, house, jazz) d. (pop, rock, latino, house, jazz)
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Se consideră subprogramul f, definit
alăturat. Scrieți două valori naturale distincte
din intervalul [1,50] pe care le poate avea
variabila întreagă x, astfel încât f(30,x) să
aibă valoarea 5. (6p.)
int f(int a,int b)
{ if (b==0) return a;
else return f(b,a%b);
}
3. Se consideră subprogramul triplete, cu un singur parametru, n, prin care primeşte o
valoare naturală din intervalul [2,104]. Subprogramul afișează pe ecran toate tripletele
de numere naturale (x, y, z) cu proprietatea că x<y<z și x·y+y·z=n. Fiecare triplet se
afișează pe câte o linie a ecranului, iar numerele din fiecare triplet sunt separate prin câte
o virgulă și încadrate între paranteze rotunde, ca în exemplu.
Scrieţi definiţia completă a subprogramului.
Exemplu: pentru n=8 se afișează pe ecran, nu neapărat în această ordine, tripletele:
(0,1,8)
(0,2,4)
(1,2,3) (10p.)
4. Fișierul bac.txt conține pe prima linie un număr natural n (1≤n≤106), iar pe a doua linie
cel mult 1000000 de numere naturale de forma 10p (0≤p≤9), separate prin câte un spațiu.
Se cere să se afișeze pe ecran numărul care ar apărea pe poziția n în șirul ordonat
crescător obținut din toate numerele aflate pe a doua linie a fișierului. Dacă șirul are mai
puțin de n termeni, se afișează pe ecran mesajul Nu exista.
Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de
vedere al timpului de executare.
Exemplu: dacă fişierul bac.txt conţine numerele
5
100 100000 1 100000 1000 100 10
atunci pe ecran se afișează valoarea
1000
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 Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 10 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 2014 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 10 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. a 4p. 2. a) Răspuns corect: 3 6p. b) Pentru răspuns corect 4p. Se acordă numai 1p. dacă al 4-lea număr menţionat este 0, dar celelalte nu sunt conform cerinţei şi numai 3p. dacă doar primele trei valori menţionate sunt conform cerinţei (numere din mulţimea 4, 6, 7, 9). 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ă cu test inițial, 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 corectă a tuturor variabilelor -citire corectă -afişare corectă -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 răspuns corect 6p. Se acordă numai 3p. dacă s-a menţionat un drum cu extremităţile indicate, dar nu este elementar.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 10 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 4. Răspuns corect: 11BAAARET 6p. Se acordă câte 3p. pentru fiecare dintre rezultatele celor două afişări. Se acordă numai 2p. dintre cele 3p. menţionate pentru a doua afișare dacă şirul de caractere obținut include caracterele BAAA, dar nu este conform cerinţei. 5. Pentru program corect -declarare a variabilei de tip tablou -accesare a unui element al tabloului -memorare a valorilor elementelor (*) -afişare a unui tablou (**) -declarare și citire a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 5p. 2p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (numere pare, numere care nu sunt divizibile cu 5, ordine crescătoare pe linii, ordine crescătoare pe coloane, construire în memorie). (**) Se acordă numai 1p. dacă sunt afișate toate elementele, dar nu în formatul cerut. SUBIECTUL al III - lea (30 de puncte) 1. c 4p. 2. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori cerute (numere din mulţimea 5, 25, 35). 3. Pentru subprogram corect -structură antet principial corectă -declarare corectă a parametrului -determinare a tripletelor cu proprietatea cerută (*) -afișare a datelor în formatul cerut (**) -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 1p. 1p. 4p. 3p. 1p. (*) Se acordă câte 2p. pentru fiecare proprietate a numerelor x, y și z (x<y<z, x·y+y·z=n). (**) Se acordă câte 1p. pentru fiecare aspect al cerinței privind afișarea (linii separate, virgule, paranteze). 4. a) Pentru răspuns corect -descriere coerentă a algoritmului (*) -justificare a unor elemente de eficienţă 4p. 2p. 2p. (*) 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 valorii cerute (*,**) -utilizare a unui algoritm eficient (***) -afișare a datelor și tratare a cazului nu exista, declarare a tuturor variabilelor, corectitudine globală a programului1) 6p. 1p. 3p. 1p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă numai 1p. dacă algoritmul utilizat este principial corect, dar valoarea determinată nu se obține corect pentru toate datele de intrare. (***) O soluţie posibilă utilizează un vector de apariții, v, în care pentru fiecare valoare 10p citită din fișier se incremenează vp, numărul de apariții ale valorii 10p. Numărul cerut, 10p, corespunde celei mai mici valori p pentru care suma v0+v1+…vp≥n. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.