Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2011 – varianta 9
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, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la Informatică Varianta 9 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 2011 Proba E. d) Proba scrisă la INFORMATICĂ Limbajul C/C++ Varianta 9 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 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. 2. Se consideră algoritmul alăturat, descris în pseudocod. a. ScrieŃi numerele care se afişează în urma executării algoritmului, în ordine, dacă pentru n se citeşte valoarea 5, iar pentru k se citeşte valoarea 2. (6p.) b. Dacă pentru variabila k se citeşte valoarea 5, scrieŃi cea mai mică şi cea mai mare valoare care pot fi citite pentru variabila n astfel încât, în urma executării algoritmului, ultimul număr care se afişează, pentru fiecare dintre aceste valori, să fie 7. (6p.) c. ScrieŃi în pseudocod un algoritm care să conŃină o singură structură repetitivă în loc de două şi care să fie echivalent cu cel dat. (4p.) d. ScrieŃi programul C/C++ corespunzător algoritmului dat. (10p.) citeşte n,k (numere naturale nenule) t0 ┌cât timp n≥≥≥≥1 execută │┌dacă n>k atunci ik ││altfel in │└■ │ tt+1 │ nn-i │┌cât timp i≥≥≥≥1 execută ││ scrie t,' ' ││ ii-1 │└■ └■ 1. IndicaŃi care dintre expresiile C/C++ de mai jos are valoarea 1 dacă şi numai dacă numărul memorat în variabila întreagă x aparŃine reuniunii de intervale [-3,-1]∪∪∪∪[1,3]. (4p.) a. x>=-3 && x<=-1 && x>=1 && x<=3 b. !(x<-3 || x>-1) || !(x<1 || x>3) c. x>=-3 || x<=-1 || x>=1 || x<=3 d. !(x<-3 && x>3 && x>-1 || x<1)
Subiectul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la Informatică Varianta 9
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. Numim pădure un graf neorientat în care fiecare componentă conexă a sa este un arbore.
Orice pădure cu cel puŃin doi arbori este un graf care: (4p.)
a. are cicluri şi este conex b. are cicluri şi nu este conex
c. nu are cicluri şi este conex d. nu are cicluri şi nu este conex
2. Se consideră graful orientat cu 6 vârfuri, numerotate de la 1 la 6, şi mulŃimea arcelor
{(1,4), (2,1), (2,4), (2,6), (4,1), (4,6)}. Numărul de subgrafuri ale sale, fiecare
având mulŃimea arcelor {(1,4), (2,1), (2,4), (4,1)}, 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. Se consideră graful neorientat cu 5 noduri, numerotate de la 1 la 5,
reprezentat prin listele de adiacenŃă alăturate.
EnumeraŃi nodurile care fac parte din componenta conexă a grafului dat
care are cele mai puŃine noduri. (6p.)
1: 4, 5
2: 3
3: 2
4: 1
5: 1
În secvenŃa de instrucŃiuni de mai jos variabilele i şi j sunt de tip întreg şi variabila A este
de tip tablou bidimensional cu 5 linii şi 5 coloane, numerotate de la 0 la 4, cu elemente
numere întregi.
Fără a utiliza alte variabile, scrieŃi o instrucŃiune care poate înlocui punctele de suspensie
astfel încât, în urma executării secvenŃei obŃinute, tabloul memorat în variabila A să aibă
elementele din figura de mai jos. Înainte de executarea secvenŃei toate elementele
tabloului sunt nule.
4.
for(i=0;i<5;i++)
for(j=0;j<5;j++)
..............
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8 (6p.)
5. ScrieŃi un program C/C++ care citeşte de la tastatură un număr natural n (2≤n≤20) şi apoi n
cuvinte distincte, fiecare fiind format din cel mult 20 de caractere, numai litere mici ale
alfabetului englez. La introducerea datelor, după fiecare cuvânt se tastează Enter. Programul
afişează pe ecran numărul de cuvinte dintre ultimele n-1 citite, care încep cu primul cuvânt
citit.
Exemplu: dacă n=5 şi cuvintele citite sunt:
bun
buncar
bunici
abundent
bunavoie
pe ecran se afişează 3 (deoarece numai cuvintele buncar, bunici şi bunavoie încep cu
bun). (10p.)Subiectul · pagina 3
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la Informatică Varianta 9
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.
Se consideră subprogramele recursive C1 şi C2, definite mai jos.
int C1 (int a, int b)
{ if(a==b) return a;
else if(a>b) return C1(a-b,b);
else return C1(a,b-a);
}
int C2 (int a, int b)
{ if(b==0) return a;
else return C2(b,a%b);
}
1.
La apel, returnează valoarea celui mai mare divizor comun al celor două numere naturale
nenule primite ca parametri: (4p.)
a. numai C1 b. numai C2 c. atât C1 cât şi C2 d. nici C1 nici C2
ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare.
2. Având la dispoziŃie cinci mărgele de culori diferite, roşu, galben, verde, albastru,
violet, se utilizează metoda backtracking pentru a obŃine toate posibilităŃile de a forma
şiruri de câte trei mărgele, ştiind că în cadrul unui şir contează ordinea de aşezare a
mărgelelor. Culorile mărgelelor, corespunzătoare primelor patru soluŃii obŃinute sunt, în
această ordine: (roşu, galben, verde), (roşu, galben, albastru), (roşu, galben,
violet), (roşu, verde, galben). ScrieŃi ultimele două soluŃii generate, în ordinea
obŃinerii lor. (6p.)
3. Subprogramul inserare are doi parametri:
n, prin care primeşte un număr natural (2≤n≤20);
a, prin care primeşte un tablou unidimensional care memorează un şir de n numere
naturale, fiecare cu cel mult 4 cifre. Cel puŃin un element al tabloului este număr par.
Subprogramul modifică tabloul astfel încât după fiecare termen par al şirului inserează
valoarea 2011 şi furnizează, tot prin parametrii n şi a, valorile actualizate ale datelor
primite.
ScrieŃi în limbajul C/C++ definiŃia completă a subprogramului.
Exemplu: dacă n=7 şi a=(1,4,5,3,82,6,2) atunci, după apel,
n=11 şi a=(1,4,2011,5,3,82,2011,6,2011,2,2011). (10p.)
4. Se citesc de la tastatură două numere naturale s1 şi s2 (0<s1≤≤≤≤18, 0≤≤≤≤s2≤≤≤≤18) şi se cere
scrierea în fişierul BAC.TXT, fiecare pe câte o linie, în ordine strict crescătoare, a tuturor
numerelor naturale cu exact 5 cifre, pentru care suma primelor două cifre este egală cu
s1, iar suma ultimelor două cifre este egală cu s2. Pentru determinarea numerelor
indicate se utilizează un algoritm eficient din punct de vedere al timpului de executare.
Exemplu: dacă s1=8, iar s2=7, atunci 35725 este unul dintre numerele care respectă
proprietatea cerută (3+5=8 şi 2+5=7).
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, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la Informatică Varianta 9 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 2011 Proba E. d) Proba scrisă la INFORMATICĂ BAREM DE EVALUARE ŞI DE NOTARE (comun pentru limbajele C/C++ şi Pascal) Varianta 9 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. • Î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. b 4p. 2. a. 1 1 2 2 3 6p. Se acordă numai 3p. pentru un răspuns parŃial corect care să includă menŃionarea secvenŃei formată din cel puŃin primii trei termeni (1,1,2). b. Pentru răspuns corect 6p. Se acordă câte 3p. pentru fiecare valoare corectă. c. Pentru algoritm pseudocod corect -echivalenŃa prelucrării realizate, conform cerinŃei (*) (**) -corectitudinea globală a algoritmului 4p. 3p. 1p. (*) Se acordă numai 1p. dacă algoritmul are o singură structură repetitivă, principial corectă, dar nu este echivalent cu cel dat. Se va puncta orice formă corectă de structură repetitivă: repetă...până când, repetă...cât timp, execută...cât timp, cât timp...execută, do...while etc. (**) Două soluŃii posibile sunt: citeşte n,k ┌pentru i0,n-1 execută │┌dacă i%k=0 atunci tt+1 │└■ │ scrie t └■ sau citeşte n,k ┌pentru i0,n-1 execută │ scrie [i/k]+1 └■
Baremul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la Informatică Varianta 9 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 d. Pentru program corect -declarare corectă a tuturor variabilelor -citire corectă -scriere corectă -instrucŃiune de decizie corectă -instrucŃiuni repetitive cu test iniŃial corecte (*) -atribuiri corecte -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre structuri este corectă. SUBIECTUL al II-lea (30 de puncte) 1. d 4p. 2. c 4p. 3. Răspuns corect: 2 3 6p. Se acordă numai 3p. dacă se indică nodurile care fac parte dintr-o componentă conexă, dar nu cea care are cele mai puŃine noduri. 4. Pentru răspuns corect (*) -accesare a unui element al tabloului -expresie corectă de calcul al valorii elementului -atribuire corectă 6p. 2p. 3p. 1p. (*) O soluŃie posibilă este transcrierea în limbaj de programare a atribuirii Ai,ji+j 5. Pentru program corect -declararea corectă a tuturor variabilelor (şiruri de caractere + variabile simple) -citirea corectă a tuturor datelor -determinarea principial corectă a unui cuvânt care începe cu un alt cuvânt -numărarea cuvintelor cerute -afişarea rezultatului -corectitudinea globală a programului1) 10p. 1+1p. 2p. 2p. 2p. 1p. 1p. SUBIECTUL al III-lea (30 de puncte) 1. c 4p. 2. Răspuns corect: (violet, albastru, galben) şi (violet, albastru, verde) (*) 6p. (*) Se acordă câte 2p. pentru fiecare triplet menŃionat corect şi 2p. pentru enumerarea acestora în ordinea cerută. Nu se depunctează elevii dacă soluŃiile nu sunt scrise între paranteze. 3. Pentru subprogram corect -structură antet principial corectă -declarare corectă a parametrilor (de tip simplu + tablou) (*) -transfer parametri conform cerinŃei -declararea tuturor variabilelor locale -algoritm principial corect de inserare a unei valori în tablou -inserare, după fiecare număr par, a valorii indicate -corectitudine globală a subprogramului1) 10p. 1p. 1+1p. 1p. 1p. 2p. 2p. 1p. (*) Pentru limbajul Pascal, parametrul de tip tablou impune definirea, în prealabil, a unui tip adecvat.
Baremul · pagina 3
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la Informatică Varianta 9 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 3 a. Pentru răspuns corect -coerenŃa explicării metodei (*) -explicarea unor elemente de eficienŃă din punct de vedere al timpului de executare 4p. 2p. 2p. (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă 4. b. Pentru program corect -operaŃii cu fişiere: declarare, pregătire în vederea scrierii, scriere în fişier -respectarea cerinŃei privind primele două cifre ale numărului -respectarea cerinŃei privind ultimele două cifre ale numărului -afişarea tuturor numerelor cerute (*),(**) -utilizarea unui algoritm eficient (***) 6p. 1p. 1p. 1p. 2p. 1p. (*) Se acordă punctajul chiar dacă soluŃia propusă nu prezintă elemente de eficienŃă sau afişează numerele cifră cu cifră. (**) Se acordă numai 1p. dacă numerele nu sunt scrise în formatul cerut sau dacă fişierul conŃine, în plus, şi alte numere. (***) Punctajul se acordă numai pentru un algoritm în care una dintre primele două cifre este determinată în funcŃie de cealaltă, şi una dintre ultimele două cifre este determinată în funcŃie de cealaltă. O soluŃie posibilă de generare este transpunerea în limbaj de programare a secvenŃei pseudocod: m1s1 ┌dacă s1>9 atunci │m19 └■ m2s2 ┌dacă s2>9 atunci │m29 └■ ┌pentru c1=1,m1 execută │ c2s1-c1 │┌pentru c3=0,9 execută ││┌pentru c4=0,m2 execută │││c5s2-c4 │││scrie c1·104+c2·103+c3·102+c4·10+c5 ││└■ │└■ └■ 1) Corectitudinea globală vizează structura, sintaxa şi alte greşeli neprecizate în barem.