Textul subiectului și baremului
Subiect BAC Informatică Mate-Info intensiv informatică C/C++ 2010 – 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, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 10 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 10 • 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. IndicaŃi care dintre expresiile C/C++ de mai jos are valoarea 1 dacă şi numai dacă numărul natural memorat în variabila întreagă n este divizibil cu 2 şi cu 7. (4p.) a. !( (n%2==1) || (n%7!=0) ) b. (n%2==0) && (n%7!=0) c. (n%2==0) || !(n%7==0) d. (n%7==2) && (n%2==7) 2. Se consideră algoritmul alăturat descris în pseudocod: S-a notat cu x%y restul împărŃirii numărului natural x la numărul natural nenul y şi cu [z] partea întreagă a numărului real z. a) ScrieŃi numărul afişat dacă pentru variabila n se citeşte valoarea 64598. (6p.) b) ScrieŃi toate numerele de exact trei cifre care pot fi citite pentru variabila n astfel încât, pentru fiecare dintre acestea, numărul afişat în urma executării algoritmului să fie 24. (4p.) citeşte n (număr natural nenul) m0 ┌repetă │ cn%10 │ n[n/10] │┌dacă c>5 atunci ││ c[c/2] │└■ │ mm*10+c └până când n=0 scrie m c) ScrieŃi în pseudocod un algoritm, echivalent cu cel dat, în care să se înlocuiască structura repetă...până când cu o structură repetitivă de alt tip. (6p.) d) ScrieŃi programul C/C++ corespunzător algoritmului dat. (10p.)
Subiectul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la INFORMATICĂ Varianta 10
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ă declarările alăturate, în care variabila
FIG memorează coordonatele, în planul xOy, ale
centrului unui cerc, precum şi lungimea razei acestuia.
O expresie C/C++ care are valoarea 1 dacă şi numai
dacă centrul cercului se află pe prima bisectoare a
sistemului de coordonate al planului xOy este: (4p.)
struct punct {
float x, y;
};
struct cerc {
struct punct centru;
float raza;
} FIG;
a. FIG.centru(x)==FIG.centru(y) b. FIG.centru.x==FIG.centru.y
c. FIG.cerc.x==FIG.cerc.y d. FIG.punct.x==FIG.punct.y
2. Pentru ca graful orientat cu 5 vârfuri, reprezentat în figura
alăturată, să devină graf tare conex, numărul minim de arce care
trebuie adăugate acestuia este: (4p.)
a. 1 b. 2 c. 3 d. 4
ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare.
În secvenŃa de instrucŃiuni de mai jos, variabilele i şi j sunt de tip întreg şi se consideră că
variabila A memorează elementele, iniŃial nule, ale unui tablou bidimensional, cu 5 linii şi 5
coloane, numerotate de la 0 la 4.
Fără a utiliza şi alte variabile decât cele menŃionate mai sus, scrieŃi o instrucŃiune care
poate înlocui punctele de suspensie astfel încât, în urma executării secvenŃei, tabloul
memorat în variabila A să aibă elementele din figura de mai jos.
3.
for(i=0;i<5;i++)
for(j=0;j<5;j++)
.......
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25 (6p.)
4. Se consideră arborele cu rădăcină, având 10 noduri, numerotate de la 1 la 10, cu vectorul
de „taŃi” t=(3,3,8,0,8,9,9,4,4,9). EnumeraŃi toate nodurile arborelui care au exact
doi fii. (6p.)
5. Se consideră un text cu cel mult 100 de caractere, format din cuvinte şi numere, separate
prin unul sau mai multe spaŃii. Cuvintele sunt formate numai din litere ale alfabetului
englez. Toate numerele sunt reale, pozitive şi sunt formate numai din parte întreagă sau
din parte întreagă şi parte fracŃionară, separate prin punctul zecimal (.).
ScrieŃi un program C/C++ care citeşte de la tastatură textul, pe care îl transformă,
eliminând din componenŃa sa toate numerele care au parte fracŃionară. Programul afişează
apoi pe ecran textul obŃinut.
Exemplu: dacă textul citit este
Reprezentat cu 4 zecimale PI este 3.1415 si e este 2.7182
se va afişa pe ecran textul:
Reprezentat cu 4 zecimale PI este si e este (10p.)Subiectul · pagina 3
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului
Centrul NaŃional de Evaluare şi Examinare
Probă scrisă la INFORMATICĂ Varianta 10
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. Se consideră subprogramul p, definit
alăturat. Valoarea lui p(210, 49)
este:
(4p.)
int p(int m, int n)
{ if(n==0) return 1;
return 1+p(n, m%n);
}
a. 1 b. 2 c. 3 d. 4
ScrieŃi pe foaia de examen răspunsul pentru fiecare dintre cerinŃele următoare.
2. Având la dispoziŃie cinci flori diferite, lalea, narcisă, mac, frezie, garoafă, se
utilizează metoda backtracking pentru a obŃine toate posibilităŃile de a forma un
aranjament floral, ştiind că se folosesc toate cele cinci flori şi contează ordinea de aşezare
a acestora. Primele patru soluŃii obŃinute sunt, în această ordine: (lalea, narcisă, mac,
frezie, garoafă), (lalea, narcisă, mac, garoafă, frezie), (lalea, narcisă,
frezie, mac, garoafă), (lalea, narcisă, frezie, garoafă, mac). ScrieŃi ultimele
două soluŃii generate, în ordinea obŃinerii lor. (6p.)
3. Subprogramul tablou are trei parametri:
n şi k, prin care primeşte câte un număr natural (3≤n≤20, 2≤k≤10);
a, prin care furnizează un tablou unidimensional care memorează un şir crescător de
n⋅⋅⋅⋅k termeni, din mulŃimea primelor n numere naturale nenule, fiecare astfel de număr
fiind în şir de exact k ori.
ScrieŃi în limbajul C/C++ definiŃia completă a subprogramului.
Exemplu: dacă n=4, k=3 atunci, după apel, a=(1,1,1,2,2,2,3,3,3,4,4,4). (10p.)
Fişierul BAC.TXT conŃine, în ordine crescătoare, cel puŃin două şi cel mult 10000 de
numere naturale. Numerele sunt separate prin câte un spaŃiu şi au cel mult 9 cifre fiecare.
Cel puŃin un număr din fişier apare o singură dată.
a) ScrieŃi un program C/C++ care citeşte toate numerele din fişier şi, printr-un algoritm
eficient din punct de vedere al timpului de executare şi al memoriei utilizate, determină şi
afişează pe ecran, în ordine strict crescătoare, separate prin câte un spaŃiu, numai
numerele care apar o singură dată în fişier. (6p.)
Exemplu: dacă fişierul are conŃinutul de mai jos
1 1 2 2 2 7 10 10 10 10 21
pe ecran se afişează, în această ordine, numerele 7 21.
4.
b) DescrieŃi în limbaj natural (3-4 rânduri) algoritmul utilizat la punctul a) şi justificaŃi
eficienŃa acestuia. (4p.)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 10 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 10 • 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) 44543 6p. b) 420 820 920 (*) 4p. (*) Numerele pot fi scrise în orice ordine. Se acordă câte 1p. pentru fiecare dintre primele două numere menŃionate corect şi 2p. pentru al treilea număr menŃionat corect. c) Pentru algoritm pseudocod corect - structură repetitivă corectă - echivalenŃa prelucrării realizate - algoritm complet - corectitudine globală 6p. 2p. 2p. 1p. 1p. d) Pentru program corect -declararea corectă a tuturor variabilelor -citire corectă -scriere corectă -structură repetitivă corectă -structură de decizie corectă -atribuiri corecte -corectitudinea globală a programului1) 10p. 2p. 1p. 1p. 2p. 2p. 1p. 1p. SUBIECTUL al II-lea 30 de puncte 1) b 4p. 2) b 4p. 3) Pentru rezolvare corectă - acces corect la un element al tabloului - completarea corectă a întregului tablou (*), (**) - utilizarea numai a variantelor indicate 6p. 1p. 4p. 1p. (*) O soluŃie posibilă reprezintă transpunerea în limbaj de programare a uneia dintre instrucŃiunile pseudocod: ai,j5*j+i+1 sau aj,i5*i+j+1 sau ┌dacă j=0 atunci ai,ji+1 │altfel ai,j5+ai,j-1 └■ (**) Se acordă numai 1p. dacă tabloul este completat corect doar parŃial. 4) Răspuns corect: 3, 4, 8 (*) 6p. (*) Se acordă câte 2p. pentru fiecare nod menŃionat corect.
Baremul · pagina 2
Ministerul EducaŃiei, Cercetării, Tineretului şi Sportului Centrul NaŃional de Evaluare şi Examinare Probă scrisă la INFORMATICĂ Varianta 10 Specializarea matematică-informatică, intensiv informatică 2 5) Pentru program corect - declararea corectă a tuturor variabilelor (şir de caractere şi variabile simple) - citire corectă a datelor - determinarea corectă a unui număr cu proprietatea cerută - eliminarea unei porŃiuni din şir - prelucrarea şirului conform cerinŃei (*) - afişarea rezultatului - corectitudinea globală a programului1) 10p. 1+1p. 1p. 2p. 1p. 2p. 1p. 1p. (*) Se acordă numai 1p. dacă se elimină şi alte numere decât cele indicate sau dacă nu se elimină toate numerele cu proprietatea indicată. SUBIECTUL al III-lea 30 de puncte 1) d 4p. 2) Răspuns corect: (garoafă, frezie, mac, lalea, narcisă), (garoafă, frezie, mac, narcisă, lalea) (*) 6p. (*) Se acordă doar 3p. dacă numai una dintre cele două soluŃii este corectă sau dacă soluŃiile nu respectă ordinea cerută. 3) Pentru subprogram corect - structură antet principial corectă - declarare corectă a parametrilor de intrare -declarare corectă a parametrului de ieşire - accesul corect la un element al tabloului - generarea unui subşir de k termeni egali - generarea celor n*k termeni ai şirului - memorarea în tablou a tuturor numerelor indicate, conform cerinŃei - furnizarea rezultatului prin parametrul indicat - corectitudinea globală a subprogramului1) 10p. 1p. 1p. 1p. 1p. 1p. 1p. 2p. 1p. 1p. a) Pentru program corect - operaŃii cu fişiere: declarare, pregătire în vederea citirii, citire din fişier - afişarea numerelor conform cerinŃei (*) - utilizarea unui algoritm eficient (**) - declarare de variabile, corectitudinea globală a programului1) 6p. 1p. 2p. 2p. 1p. (*) Se acordă punctajul chiar dacă soluŃia propusă nu prezintă elemente de eficienŃă. (**) Punctajul se acordă numai pentru un algoritm liniar (de complexitate O(n)), care nu utilizează un tablou. 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. 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă metoda aleasă nu este eficientă. 1) Corectitudinea globală vizează structura, sintaxa şi alte greşeli neprecizate în barem.