Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Mate-Info C/C++ 2017 – varianta 7

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 Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 7
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 2017
Proba E. d)
Informatică
Limbajul C/C++
Varianta 7
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. Expresia C/C++ alăturată are valoarea: (4p.) 3+7/4+3
a. 1 b. 5.5 c. 7 d. 7.75
2. Se consideră algoritmul alăturat,
reprezentat în pseudocod.
S-a notat cu a%b restul împărţirii numărului
natural a la numărul natural nenul b şi cu [c]
partea întreagă a numărului real c.
citeşte n
(număr natural nenul)
k0
i1
┌cât timp i≤n execută
│ citeşte x
│ (număr natural nenul)
│ y2
│┌cât timp x>1 și x%y≠0 execută
││ yy+1
│└■
│┌dacă k<[x/y] atunci
││ k[x/y]
│└■
│ ii+1
└■
scrie k
a) Scrieţi ce se afişează dacă se citesc, în
această ordine, numerele 4, 5, 24, 3, 45.
(6p.)
b) Dacă primul număr citit este 3, scrieți un
set de numere distincte care pot fi citite în
continuare, astfel încât, în urma executării
algoritmului, să se afișeze valoarea 1.
(4p.)
c) Scrieţi în pseudocod un algoritm
echivalent cu cel dat, înlocuind adecvat
prima structură cât timp...execută
cu o structură de tip
pentru...execută. (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 7
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. În declararea alăturată, în câmpurile s şi d ale structurii sunt
memorate extremitatea stângă, respectiv dreaptă ale fiecăruia dintre
cele 20 de intervale închise. O expresie C/C++ a cărei valoare este
extremitatea stângă a primului interval este: (4p.)
struct interval
{ float s,d;
}v[20];
a. v[0].s b. s.v[0] c. v(0).s d. s(0).v
2. Într-un arbore cu 50 de noduri, numerotate de la 1 la 50, rădăcina este nodul 1, iar tatăl
oricărui alt nod i al său este nodul numerotat cu [i/2]. Lungimea lanţului cu o extremitate
în nodul 14 și cealaltă extremitate în nodul 47 este: (4p.)
a. 5 b. 8 c. 16 d. 33
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. Un graf neorientat cu 4 noduri, numerotate de la 1 la 4, este reprezentat prin
matricea de adiacență alăturată. Scrieți mulțimea nodurilor și mulțimea
muchiilor unui subgraf al acestui graf, diferit de el însuși, în care cel puțin un
nod să aibă gradul 1 și cel puțin un nod să aibă gradul 2. (6p.)
0 1 0 1
1 0 0 1
0 0 0 1
1 1 1 0
4. În secvența alăturată variabilele n și i sunt de tip
întreg, iar variabila s permite memorarea unui
cuvânt, șir de cel mult 20 de caractere. Cuvintele
citite sunt formate din litere mici ale alfabetului
englez și sunt separate prin Enter.
n=.....;
for(i=1;i<=11;i++)
{ cin>>s; | scanf(“%s”,s);
............
}
Fără a utiliza alte variabile, scrieți secvența înlocuind punctele de
suspensie astfel încât, în urma executării secvenței obținute,
variabila n să memoreze numărul de cuvinte citite pentru care
subșirul format din ultimele trei caractere ale lor coincide cu șirul
are, iar acesta NU mai apare pe alte poziții în cuvânt.
Exemplu: dacă se citesc cuvintele alăturate, variabila n are
valoarea 3. (6p.)
la
proiectare
se
are
in
vedere
evitarea
deformatiilor
areolare
si
liniare
5. Scrieți un program C/C++ care citește de la tastatură un număr natural par n (n∈∈∈∈[2,50])
și elementele unui tablou bidimensional cu n linii și n coloane, numere reale, apoi
transformă tabloul în memorie, inserând o linie nouă, la mijlocul său, valoarea fiecărui
element al acesteia fiind egală cu media aritmetică a elementelor aflate pe coloana
corespunzătoare lui în tabloul citit. Tabloul obținut se afişează pe ecran, câte o linie a
tabloului pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un
spaţiu.
Exemplu: pentru n=4 și tabloul
1.5 0.75 3 1.2
2.75 1.25 2.25 1.5
4.5 1.15 3 4.5
0.25 0.85 1.75 3
se obține tabloul: 1.5 0.75 3 1.2
2.75 1.25 2.25 1.5
2.25 1 2.5 2.55
4.5 1.15 3 4.5
0.25 0.85 1.75 3
(10p.)

Subiectul · pagina 3

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 7
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. Subprogramul f este definit alăturat.
Valoarea lui f(1234) este:
(4p.)
int f(int n)
{ if (n!=0)
return (n%2)*(n%10)+f(n/10);
return 0;
}
a. 0 b. 4 c. 6 d. 10
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Fiind date o mulțime finită și un set de perechi de forma (i,j), unde i și j sunt
elemente ale mulțimii, se numeşte șir sortat topologic asociat mulțimii un șir format din
toate elementele mulțimii, astfel încât pentru orice pereche (i,j) dintre cele date,
elementul i să se găsească înaintea lui j în şir.
Utilizând metoda backtracking, se generează toate șirurile sortate topologic ale mulţimii
{1, 2, 3, 4, 5, 6}, având în vedere perechile (4,6), (3,4), (3,1), (2,5). Primele trei
soluţii generate sunt, în această ordine: (2,3,1,4,5,6), (2,3,1,4,6,5),
(2,3,1,5,4,6). Scrieţi cea de a patra şi cea de a cincea soluţie, în ordinea generării
acestora. (6p.)
3. Subprogramul triplete are trei parametri, a, b și c, prin care primește câte un număr
natural din intervalul [0,104] (a<b). Subprogramul afișează pe ecran toate tripletele de
numere naturale, x, y şi z, soluţii ale ecuaţiei x+y+z=c, cu proprietatea că a≤≤≤≤x≤≤≤≤y≤≤≤≤z≤≤≤≤b.
Fiecare triplet afișat este încadrat între acolade, iar numerele x, y și z sunt afișate în
această ordine, separate prin câte o virgulă. Dacă nu există niciun triplet cu proprietatea
cerută, se afişează mesajul nu exista.
Scrieți definiția completă a subprogramului.
Exemplu: dacă a=2, b=4 şi c=8, se afișează pe ecran tripletele
{2,2,4}{2,3,3}
iar dacă a=5, b=8, c=8 se afişează pe ecran mesajul
nu exista. (10p.)
4. Un șir de numere este o progresie aritmetică de rație r dacă oricare termen al său, cu
excepția primului, se obține din cel care îl precede, prin adunarea la acesta a numărului r.
Exemplu: șirul 12, 14, 16, 18, 20 este o progresie de rație 2.
Fișierul bac.in conține un șir de cel mult 106 numere naturale din intervalul [0,103],
separate prin câte un spațiu.
Se cere să se verifice dacă există un număr natural r, astfel încât toate numerele
distincte din șir să poată fi rearanjate, pentru a forma o progresie aritmetică de rație r. Se
afișează pe ecran numărul r, sau mesajul NU, dacă nu există un astfel de număr.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele
180 30 80 280 130 330 230 30 30 330 80
se afișează pe ecran
50
a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)
b) Scrieţi programul C/C++ corespunzător algoritmului descris. (8p.)

Baremul

Deschide PDF-ul original

Baremul · pagina 1

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 7
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 2017
Proba E. d)
Informatică
Barem de evaluare și de notare
(comun pentru limbajele C/C++ şi Pascal)
Varianta 7
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. c 4p.
2. a) Răspuns corect: 15 6p.
b) Pentru răspuns corect 4p. Se acordă punctajul pentru oricare set de trei
numere prime distincte sau de două numere
prime distincte și valoarea 1.
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 corectă
-instrucţiune de decizie corectă
-instrucţiuni repetitive corecte (*)
-atribuiri corecte
-afișare a datelor
-corectitudine globală a programului1)
10p.
1p.
1p.
2p.
3p.
1p.
1p.
1p.
(*) Se acordă numai 2p. dacă doar una dintre
instrucțiunile repetitive este conform cerinței.
SUBIECTUL al II - lea (30 de puncte)
1. a 4p.
2. b 4p.
3. Pentru rezolvare corectă
-mulțime a nodurilor, conform cerinței (*)
-mulțime a muchiilor, conform cerinței (**)
6p.
3p.
3p.
(*) Se acordă numai 1p. dacă s-a precizat
mulțimea nodurilor unui subgraf, dar acesta
nu este conform cerinței.
(**) Se acordă numai 1p. dacă s-a precizat
mulțimea muchiilor subgrafului, dar acesta
nu este conform cerinței.

Baremul · pagina 2

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 7
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. Pentru răspuns corect
-expresie de inițializare a contorului
-expresie de incrementare a contorului
-expresie de identificare a unui cuvânt
conform cerinței (*)
-corectitudine globală a secvenței1)
6p.
1p.
1p.
3p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect
conform cerinței (căutare a unui subșir,
poziție a subșirului, frecvență a subșirului).
5. Pentru program corect
-declarare a variabilei de tip tablou de
numere reale
-citire a tabloului
-modificare a tabloului (*)
-afişare a datelor în formatul cerut (**)
-declarare și citire a variabilelor simple,
corectitudine globală a programului1)
10p.
1p.
1p.
5p.
2p.
1p.
(*) Se acordă câte 1p. pentru fiecare aspect
(algoritm principial corect de calcul al unei
medii, elemente suport pentru determinarea
valorii unui element inserat, inserare a unei
linii, plasare în tablou a mediilor calculate,
transformare în memorie) conform cerinţei.
(**) Se acordă numai 1p. dacă s-au afișat
datele, dar numărul de elemente afișate sau
formatul de afișare nu este conform cerinței.
SUBIECTUL al III - lea (30 de puncte)
1. b 4p.
2. Răspuns corect:
(2,3,4,1,5,6) (2,3,4,1,6,5)
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
-determinare a tripletelor cerute (*)
-afișare a datelor în formatul cerut (**)
-tratare a cazului nu exista
-declarare a tuturor variabilelor locale,
corectitudine globală a
subprogramului1)
10p.
1p.
1p.
3p.
3p.
1p.
1p.
(*) Se acordă numai 2p. dacă un singur
aspect (soluții ale ecuației, valori din
intervalul [a,b]) este conform cerinței.
(**) Se acordă câte 1p. pentru fiecare
aspect (încadrare între acolade, separare
prin virgulă, ordine valori în cadrul tripletului)
conform cerinței.
4. a) Pentru răspuns corect
-coerenţă a descrierii algoritmului (*)
-justificare a unor elemente de
eficienţă conform cerinței
2p.
1p.
1p.
(*) 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 rației și verificare a
proprietății cerute (*, **)
-utilizare a unui algoritm eficient (***)
-afișare a datelor, corectitudine
globală a programului1)
8p.
1p.
5p.
1p.
1p.
(*) Se acordă punctajul chiar dacă soluţia
propusă nu prezintă elemente de eficienţă.
(**) Se acordă numai 3p. pentru algoritm
principial corect, dar care nu conduce la
rezultatul cerut pentru toate cazurile.
(***) Se acordă punctajul numai pentru un
algoritm liniar (de complexitate O(n)).
O soluție posibilă citește datele din fișier și,
pe măsura citirii, marchează cu 1, într-un
vector caracteristic, termenii șirului; se
determină valoarea r ca numărul de valori
nule din vectorul caracteristic aflate între
primele două elemente egale cu 1 ale
acestuia, apoi se parcurge vectorul și se
verifică dacă între oricare două elemente
succesive egale cu 1 există r valori nule.
Rația progresiei este r+1.
1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.