Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Mate-Info intensiv informatică C/C++ 2010 – varianta 8

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 original

Subiectul · pagina 1

Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la INFORMATICĂ Varianta 8
Specializarea matematică-informatică, intensiv informatică Limbajul C/C++
1
Examenul de bacalaureat 2010
Proba E-d)
Proba scrisă la INFORMATICĂ
Limbajul C/C++
Specializarea matematică informatică, intensiv informatică
Varianta 8
• Toate subiectele (I, II şi III) sunt obligatorii. Se acordă 10 puncte din oficiu.
• Timpul efectiv de lucru 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ă).
SUBIECTUL I (30 de puncte)
Pentru itemul 1, scrieŃi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Se consideră definite trei variabile de tip int: x, y şi z. O expresie C/C++ care are
valoarea 1 dacă şi numai dacă x, y şi z au valori identice este: (4p.)
a. x==y && x==z b. x==y==z
c. x==y || x==z || y==z d. !( x!=y && x!=z)
2. Se consideră algoritmul alăturat descris
în pseudocod.
a) ScrieŃi numărul afişat în urma executării
algoritmului dacă pentru n se citeşte
valoarea 6. (6p.)
b) ScrieŃi o valoare care poate fi citită
pentru n astfel încât să se afişeze
valoarea 55. (4p.)
c) ScrieŃi în pseudocod un algoritm,
echivalent cu cel dat, care să conŃină o
singură structură repetitivă. (6p.)
d) ScrieŃi programul C/C++ corespunzător
algoritmului dat. (10p.)
citeşte n (număr natural nenul)
s0
┌pentru i1,n execută
│ a0
│ b1
│ j1
│ ┌cât timp j<i execută
│ │ r2*b-a
│ │ ab
│ │ br
│ │ jj+1
│ └■
│ ss+b
└■
scrie s

Subiectul · pagina 2

Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la INFORMATICĂ Varianta 8
Specializarea matematică-informatică, intensiv informatică Limbajul C/C++
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. Se consideră un graf neorientat cu 6 noduri şi 9 muchii. Numărul de muchii ce trebuie
adăugate, pentru ca graful obŃinut să fie complet, este: (4p.)
a. 5 b. 6 c. 12 d. 15
2. Se consideră secvenŃa de instrucŃiuni alăturată,
în care variabilele i şi j sunt de tip întreg,
variabila a este de tip char, iar variabila s poate
memora un şir de cel mult 20 de caractere. Şirul
afişat în urma executării secvenŃei este: (4p.)
strcpy(s,"bacalaureat");
j=strlen(s);
for(i=0;i<3;i++)
if(s[i]!=s[j-i-1])
{ a=s[i];
s[i]=s[j-i-1];
s[j-i-1]=a;
}
cout<<s; | printf("%s",s);
a. bacalaureab b. tacalaureab c. tacrlauaeab d. taealaurcab
ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare.
3. Se consideră un arbore cu rădăcină având 8 noduri, numerotate de la 1 la 8, şi muchiile
[1, 2], [1, 3], [2, 4], [3, 5], [3, 6], [6, 7], [6, 8]. Considerând că rădăcina este
nodul numerotat cu 1 şi că ea este situată pe nivelul 0 al arborelui, scrieŃi toate nodurile
situate pe nivelul 2 al arborelui dat. (6p.)
4. Variabilele e1 şi e2, declarate alăturat, memorează
numele şi data naşterii pentru câte un elev. Ştiind că cei
doi elevi sunt născuŃi în ani diferiŃi, scrieŃi secvenŃa de
instrucŃiuni care afişează pe ecran numele elevului de
vârstă mai mare. (6p.)
struct data_n {
int an, luna, zi;
};
struct elev{
char nume[20];
data_n d;
} e1, e2;
ScrieŃi un program C/C++ care citeşte de la tastatură un număr natural, n (2≤n≤20), şi
construieşte în memorie tabloul bidimensional cu n linii şi n coloane, având proprietăŃile:
• toate elementele situate pe diagonala principală sunt nule;
• fiecare linie conŃine, începând cu diagonala principală, de la dreapta la stânga, un şir
strict crescător de numere consecutive, iar începând cu diagonala principală, de la
stânga la dreapta, tot un şir strict crescător de numere consecutive.
5.
Programul afişează pe ecran tabloul construit, fiecare linie a tabloului pe
câte o linie a ecranului, cu elementele aflate pe aceeaşi linie separate prin
câte un spaŃiu.
Exemplu: dacă n=5 se afişează pe ecran tabloul alăturat. (10p.)
0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0

Subiectul · pagina 3

Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la INFORMATICĂ Varianta 8
Specializarea matematică-informatică, intensiv informatică Limbajul C/C++
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 numerele pare cu câte trei cifre, cifre
care aparŃin mulŃimii {7, 8, 1, 6, 2, 3}. Primele 4 soluŃii generate sunt, în această ordine:
778, 776, 772, 788. Cea de a 8-a soluŃie generată este: (4p.)
a. 712 b. 716 c. 718 d. 782
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ă numere naturale din intervalul
deschis (20,30), care pot fi memorate în
variabilele întregi x1, şi respectiv x2, astfel încât
valoarea lui f(x1,3) să fie 29, iar valoarea lui
f(3,x2) să fie 1. (6p.)
int f(int a, int b)
{ if(a>=b)
return (a-b)+f(a/b,b);
return 1;
}
3. Se consideră şirul s, construit după regula
alăturată.
Subprogramul sir primeşte prin parametrul n un număr natural (3<n<20) şi furnizează
prin parametrul a un tablou unidimensional care memorează primii n termeni ai şirului s,
definit după regula de mai sus, astfel încât numerele impare să ocupe primele poziŃii în
tablou, iar cele pare să fie memorate în continuarea celor impare.
ScrieŃi definiŃia completă a subprogramului sir.
Exemplu: dacă n=6, primii şase termeni ai şirului sunt 1, 1, 2, 5, 13, 34, iar, după apel,
tabloul construit poate fi (1,1,5,13,2,34). (10p.)
Fişierul bac.in conŃine pe prima linie un număr natural n (3<n<1000), iar pe
următoarea linie, un şir de n numere naturale distincte, de cel mult nouă cifre fiecare.
Numerele din şir sunt separate prin câte un spaŃiu şi cel puŃin trei dintre ele au ultima cifră
egală cu 5.
a) ScrieŃi un program C/C++ care citeşte toate numerele din fişier şi, utilizând un algoritm
eficient din punct de vedere al timpului de executare şi al memoriei utilizate, determină şi
afişează pe ecran cele mai mari trei numere din şir care au ultima cifră egală cu 5.
Numerele determinate sunt afişate în ordine crescătoare, separate prin câte un spaŃiu.(6p.)
4.
Exemplu: dacă fişierul bac.in are conŃinutul
alăturat, pe ecran se vor afişa, în această ordine,
numerele: 15 25 85
10
97 5 11 1 8 6 85 3 25 15
b) DescrieŃi succint, în limbaj natural (3-4 rânduri), algoritmul utilizat la punctul a) şi
justificaŃi eficienŃa acestuia. (4p.)

Baremul

Deschide PDF-ul original

Baremul · pagina 1

Ministerul EducaŃiei, Cercetării şi Inovării
Centrul NaŃional pentru Curriculum şi Evaluare în ÎnvăŃământul Preuniversitar
Probă scrisă la INFORMATICĂ Varianta 8
Specializarea matematică-informatică, intensiv informatică
1
Examenul de bacalaureat 2010
Proba E-d)
Proba scrisă la INFORMATICĂ
Specializarea matematică-informatică, intensiv informatică
Subiecte 2009
BAREM DE CORECTARE ŞI DE NOTARE
(comun pentru limbajele Pascal şi C/C++)
Varianta 8
• Nu se acordă punctaje intermediare, altele decât cele precizate explicit prin barem. Nu se acordă
fracŃiuni de punct.
• Se punctează oricare alte formulări/ modalităŃi de rezolvare corectă a cerinŃelor.
• Se acordă 10 puncte din oficiu. Nota finală se calculează prin împărŃirea punctajului total acordat
pentru lucrare la 10.
• În programele cerute, datele de intrare se consideră corecte, validarea acestora nefiind necesară.
• 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) 21 6p.
b) 10 4p.
c) Pentru program pseudocod corect
- echivalenŃa prelucrării realizate (*) (**)
- echivalenŃa celor doi algoritmi
- corectitudine globală a algoritmului1)
6p.
4p.
1p.
1p.
(*) O soluŃie posibilă se obŃine prin înlocuirea
secvenŃei
┌pentru i1,n execută
│ ...
└■
cu secvenŃa:
┌pentru i1,n execută
│ ss+i
└■
sau cu secvenŃa:
b0
┌pentru i1,n execută
│ bb+1
│ ss+b
└■
Pentru soluŃia s[n*(n+1)/2] care determină
rezultatul corect, dar nu conŃine o structură
repetitivă, conform cerinŃei, se acordă numai 2p.
(**) Se acordă punctajul pentru utilizarea corectă
a oricărui tip de structură repetitivă.
d) Pentru program corect
-declararea corectă a tuturor variabilelor
(*)
-citire corectă
-scriere corectă
-structuri repetitive corecte
-atribuiri corecte
-corectitudinea globală a programului1)
10p.
2p.
1p.
1p.
2x2p.
1p.
1p.
(*) Se acordă numai 1p. dacă se declară corect
numai o parte dintre variabilele utilizate.
SUBIECTUL al II-lea 30 de puncte
1) b 4p.
2) d 4p.
3) Răspuns corect: 4, 5, 6 (*) 6p. (*) Pentru fiecare nod dintre cele trei, menŃionat
corect, se acordă câte 2p.

Baremul · pagina 2

Ministerul EducaŃiei, Cercetării şi Inovării
Centrul NaŃional pentru Curriculum şi Evaluare în ÎnvăŃământul Preuniversitar
Probă scrisă la INFORMATICĂ Varianta 8
Specializarea matematică-informatică, intensiv informatică
2
4) Pentru rezolvare corectă
- accesul corect la câmpul nume al
variabilelor
- accesul corect la câmpul an al variabilelor
- determinarea şi afişarea datelor cerute
6p.
2x1p.
2x1p.
2p.
5) Pentru program corect
- declararea corectă a tuturor variabilelor
(tablou şi variabile simple)
- citire corectă a variabilelor simple
- memorarea valorii 0 în elementele aflate pe
diagonala principală (*)
- memorarea valorilor cerute în elementele
aflate deasupra diagonalei principale
- memorarea valorilor cerute în elementele
aflate sub diagonala principală
- afişarea tabloului conform cerinŃei
- corectitudinea globală a programului1)
10p.
1+1p.
1p.
1p.
2p.
2p.
1p.
1p.
(*) Se acordă punctajul şi dacă iniŃializarea cu 0 a
acestor elemente nu s-a realizat prin atribuiri, ci,
de exemplu, implicit, prin declararea tabloului ca
variabilă globală.
SUBIECTUL al III-lea 30 de puncte
1) b 4p.
2) Pentru răspuns corect
x1: 26
x2: de exemplu 21 (*)
6p.
3p.
3p.
(*) Se acordă punctajul pentru orice număr din
intervalul deschis (20, 30).
3) Pentru subprogram corect
- structură antet principial corectă
- declarare corectă a parametrului de
intrare
- declarare corectă a parametrului de
ieşire (*)
- accesul corect la un element al tabloului
- generarea corectă a tuturor termenilor
ceruŃi (**) (***)
- poziŃionarea în tablou a elementelor pare
ale şirului, conform cerinŃei
- poziŃionarea în tablou a elementelor
impare ale şirului, conform cerinŃei
- corectitudinea globală a subprogramului1)
10p.
1p.
1p.
1p.
1p.
1p.
2p.
2p.
1p.
(*) Pentru limbajul Pascal se are în vedere şi
definirea corectă a tipului de date necesar.
(**) Se acordă punctajul şi dacă valorile generate
nu au fost poziŃionate corect în tablou.
(***) Pentru al treilea termen al şirului se acceptă o
valoare calculată pe baza celor doi termeni
anteriori, ca în exemplu, sau orice altă valoare.
a) Pentru program corect
- operaŃii cu fişiere: declarare, pregătire în
vederea citirii, citire din fişier
- determinarea corectă a unui număr care
are ultima cifră egală cu 5
- determinarea şi afişarea celor mai mari
trei numere din fişier cu proprietatea
cerută (*),(**)
- utilizarea unui algoritm eficient (***)
- declarare de variabile, corectitudinea
globală a programului1)
6p.
1p.
1p.
2p.
1p.
1p.
(*) Se acordă punctajul chiar dacă soluŃia
propusă nu prezintă elemente de eficienŃă.
(**) Se acordă numai 1p. dacă s-a determinat
corect doar cel mai mare număr din fişier.
(***) Punctajul se acordă numai pentru un
algoritm liniar (de complexitate O(n)), care
utilizează eficient memoria.
4)
b) Pentru răspuns corect
- coerenŃa explicării metodei (*)
- explicarea unor elemente de eficienŃă
din punct de vedere al timpului de
executare
- explicarea unor elemente de eficienŃă
din punct de vedere al memoriei utilizate
4p.
1p.
2p.
1p.
(*) Se acordă punctajul chiar dacă metoda
aleasă nu este eficientă.
1) Corectitudinea globală vizează structura, sintaxa, alte greşeli neprecizate în barem