Textul subiectului și baremului
Subiect BAC Informatică Mate-Info C/C++ 2013 – varianta 2
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 2 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 2013 Proba E. d) Informatică Limbajul C/C++ Varianta 2 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%4 a. 3 b. 24.75 c. 95 d. 396 2. Se consideră algoritmul alăturat, reprezentat î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. citeşte a,b,c (numere naturale, a≤b, 0≤c≤9) s←←←←0 ┌pentru x←←←←a,b execută │ y←←←←x │┌cât timp y>0 execută ││┌dacă y%10=c atunci │││ s←←←←s+1 ││└■ ││ y←←←←[y/10] │└■ └■ scrie s a) Scrieţi valoarea afişată dacă se citesc, în această ordine, numerele 19, 23 şi 2. (6p.) b) Dacă pentru variabila a se citeşte valoarea 1, iar pentru variabila c se citeşte valoarea 1, scrieţi toate numerele naturale care pot fi citite pentru variabila b, astfel încât, în urma executării algoritmului, pentru fiecare dintre acestea, să se afişeze valoarea 12. (4p.) c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, în care să se înlocuiască structura cât timp...execută cu o structură repetitivă cu test final. (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 2
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. Expresia strlen(”bine”) are valoarea: (4p.)
a. 1 b. 4 c. 5 d. 6
2. Se consideră un graf orientat cu 6 vârfuri şi fără circuite. Numărul maxim de arce ale grafului
este: (4p.)
a. 5 b. 7 c. 10 d. 15
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Se consideră declararea alăturată. Scrieţi o secvenţă de
instrucţiuni în urma executării căreia câmpul paritate
al variabilei x să memoreze litera p, dacă numărul
memorat în câmpul v al acesteia este par, sau litera i
dacă numărul memorat în câmpul v al acesteia este
impar. (6p.)
struct numar
{ int v;
char paritate;
} x;
4. Se consideră un arbore cu 5 noduri, dintre care doar trei au gradul egal cu 1. Scrieţi două
valori care să reprezinte gradele celorlalte două noduri. (6p.)
5. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale m şi n
(2≤m≤50, 2≤n≤50) şi elementele unui tablou bidimensional cu m linii şi n coloane, numere
naturale cu cel mult patru cifre fiecare. Programul determină coloanele care au toate
elementele egale cu aceeaşi valoare şi, pentru fiecare astfel de coloană afișează pe ecran
valoarea respectivă. Valorile afișate sunt separate prin câte un spațiu, iar dacă nu există
astfel de valori, programul afişează pe ecran mesajul Nu exista.
Exemplu: pentru m=4, n=5 şi tabloul alăturat, se afişează pe ecran
numerele 3 7 7, nu neapărat în această ordine.
(10p.)
2 3 7 5 7
3 3 7 4 7
7 3 7 1 7
8 3 7 6 7Subiectul · pagina 3
Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 2
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. Se consideră subprogramele f1 şi f2, definite mai jos.
int f1 (int x, int y)
{
return x*y;
}
int f2 (int x, int y)
{ if (y==1) return x;
else return x*f2(x, y-1);
}
La apel, pentru parametrii x=2 şi y=3, returnează xy: (4p.)
a. atât f1, cât şi f2 b. numai f1 c. numai f2 d. nici f1, nici f2
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Utilizând metoda backtracking se generează toate cuvintele de 5 litere din mulţimea {A, M},
cuvinte care încep şi se termină cu M. Primele patru soluţii generate sunt, în această
ordine: MAAAM, MAAMM, MAMAM, MAMMM. Scrieţi cea de a cincea şi cea de a şasea soluţie,
în ordinea generării acestora. (6p.)
3. Se consideră subprogramul valuri, cu doi parametri:
• n, prin care primeşte o valoare naturală 2<n<50;
• v, prin care furnizează un tablou unidimensional cu 2·n elemente, valori întregi din
intervalul [1, 2·n].
Subprogramul construieşte tabloul v astfel încât, în acesta, şirul elementelor impare să fie
strict crescător, iar şirul elementelor pare să fie strict descrescător. Primul element al
tabloului este impar, iar două elemente cu aceeaşi paritate nu pot ocupa poziţii
consecutive în tablou, ca în exemplu.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=4 atunci, după apel, v=( 1, 8, 3, 6, 5, 4, 7, 2). (10p.)
4. Se consideră şirul definit alăturat (unde n este
un număr natural nenul), în care nu există doi
termeni cu aceeași paritate aflați pe poziții
consecutive:
1, 2, 3, 4, 7, 8, 15, 16 ....
⋅+
+
=
=
altfel,2-nf21
parndacă,1-nf1
1ndacă1,
nf
Se citeşte de la tastatură un număr natural x, cu cel mult nouă cifre, termen al şirului dat,
şi se cere să se scrie în fişierul text bac.txt, în ordine strict descrescătoare, separați prin
câte un spațiu, toţi termenii şirului care sunt mai mici sau egali cu x.
Pentru determinarea termenilor ceruţi se utilizează un algoritm eficient din punctul de
vedere al memoriei utilizate şi al timpului de executare.
Exemplu: dacă x=15, fişierul bac.txt conţine numerele
15 8 7 4 3 2 1
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 2 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 2013 Proba E. d) Informatică Barem de evaluare și de notare (comun pentru limbajele C/C++ şi Pascal) Varianta 2 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: 5 6p. b) Răspuns corect: 19, 20 4p. Se acordă numai 2p. dacă doar una dintre cele două valori este corectă şi numai 3p. dacă ambele valori sunt corecte, dar sunt menţionate şi altele, incorecte. 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 a tuturor variabilelor -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țiunile repetitive este corectă. SUBIECTUL al II - lea (30 de puncte) 1. b 4p. 2. d 4p. 3. Pentru rezolvare corectă -acces corect la câmpurile înregistrării -verificare condiție de paritate -memorare literă conform cerinței 6p. 2x2p. 1p. 1p.
Baremul · pagina 2
Ministerul Educaţiei Naționale Centrul Naţional de Evaluare şi Examinare Probă scrisă la informatică Varianta 2 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: 2, 3 6p. Se acordă câte 3p. pentru fiecare valoare corectă. 5. Pentru program corect -declarare corectă a variabilei de tip tablou -accesare corectă a unui element al tabloului -citire tablou -determinare coloane cu elemente egale și afişare a valorilor corespunzătoare acestora (*) -tratare a cazului Nu exista -declarare variabile simple, citire date simple, corectitudine globală a programului1) 10p. 1p. 1p. 1p. 5p. 1p. 1p. (*) Se acordă numai 3p. dacă s-au determinat doar o parte dintre coloanele conform cerinței sau dacă pentru coloanele cu proprietatea indicată s-a afișat altă valoare decât cea cerută. SUBIECTUL al III - lea (30 de puncte) 1. c 4p. 2. Răspuns corect: MMAAM MMAMM 6p. Se acordă câte 2p. pentru fiecare aspect al cerinţei (conţinut prima soluţie scrisă, conţinut a doua soluţie scrisă, ordinea soluţiilor). 3. Pentru subprogram corect -structură antet principial corectă -declarare corectă a parametrilor (de tip simplu și tablou) -accesare corectă a unui element al tabloului -plasare valori în tablou conform cerinței (*) -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 1p. 2x1p. 1p. 5p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al cerinței (toate numerele cerute, ordinea numerelor pare, ordinea numerelor impare, elemente cu paritate diferită pe poziții consecutive, primul element impar). 4. a) Pentru răspuns corect -coerenţă a explicării metodei (*) -explicare a unor elemente de eficienţă conform cerinţei 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 scrierii, scriere în fişier -determinare și afișare a valorilor cerute (*, **) -utilizare a unui algoritm eficient (***) 6p. 1p. 4p. 1p. (*) Se acordă punctajul chiar dacă soluţia propusă nu prezintă elemente de eficienţă. (**) Se acordă câte 2p. pentru fiecare condiţie impusă (ordine strict descrescătoare, toți termenii ceruți). (***) Se acordă punctajul numai pentru un algoritm liniar (de complexitate O(n)), care utilizează eficient memoria. O soluţie posibilă generează termenii șirului astfel: dacă termenul curent este x, iar cel care îl precede este ax, atunci ax se determină astfel: dacă x este impar, ax=[(x+1)/2], iar dacă x este par, ax=x-1. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.