Înapoi la fișa subiectului

Textul subiectului și baremului

Subiect BAC Informatică Mate-Info C/C++ 2018 – sesiunea august–septembrie, 23 august 2018, varianta 1

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 1
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
1 din 3
Examenul de bacalaureat naţional 2018
Proba E. d)
Informatică
Limbajul C/C++
Varianta 1
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ă.
• În grafurile din cerințe oricare arc/muchie are extremități distincte și oricare două
arce/muchii distincte diferă prin cel puțin una dintre extremități.
SUBIECTUL I (30 de puncte)
Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.
1. Variabilele x, y și z sunt de tip întreg și memorează câte un număr
natural nenul. Dacă expresia C/C++ alăturată are valoarea 1,
indicați șirul crescător format cu valorile acestor variabile, în ordinea
precizată mai jos. (4p.)
z<x && 2*z==3*y
a. x, y, z b. y, z, x c. z, x, y d. z, y, x
2. Algoritmul alăturat este 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 [a] partea întreagă a
numărului real a.
citeşte n
(număr întreg)
m0
p1
x0
┌dacă n<0 atunci
│ n-n
└■
┌repetă
│ cn%10
│ n[n/10]
│┌dacă c>m atunci
││ mc
│└■
│ xm*p+x
│ pp*10
└până când n=0
scrie x
a) Scrieţi numărul afişat dacă se citeşte valoarea
10523. (6p.)
b) Scrieţi patru numere întregi care pot fi citite
astfel încât, în urma executării algoritmului,
pentru fiecare dintre acestea, să se afișeze
numărul 722. (4p.)
c) Scrieţi în pseudocod un algoritm echivalent cu
cel dat, înlocuind adecvat structura
repetă...până când cu o structură
repetitivă cu test inițial. (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 1
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
2 din 3
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(”2018”) are valoarea: (4p.)
a. 4 b. 5 c. 6 d. 7
2. Un graf orientat este complet dacă pentru oricare două vârfuri i și j ale sale există fie
ambele arce (i,j) și (j,i), fie doar unul dintre acestea.
Un graf orientat are 5 vârfuri și 20 de arce. Pentru a obține un graf parțial al său cu două
componente tare conexe, fiecare dintre acestea fiind grafuri complete, unul cu 3 vârfuri, iar
celălalt cu 2 vârfuri, numărul minim de arce care pot fi eliminate este: (4p.)
a. 2 b. 3 c. 6 d. 10
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
3. În declararea alăturată, câmpurile cat şi rest
memorează câtul, respectiv restul împărțirii a două
numere naturale nenule.
struct impartire
{ int cat;
int rest;
}rezultat;
int x;
Scrieţi o secvență de instrucțiuni în urma executării căreia se memorează în variabila
rezultat câtul și restul împărțirii întregi a numărului 2018 la numărul natural memorat în
variabila x, dacă acesta este nenul, sau se afișează pe ecran mesajul
impartire nepermisa, în caz contrar. (6p.)
4. Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat
prin matricea de adiacență alăturată. Scrieţi trei noduri care pot fi
alese drept rădăcină astfel încât fiecare nod să admită cel mult doi
descendenți direcți (fii). (6p.)
0 1 1 1 0 0 0 0
1 0 0 0 0 1 0 1
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 1 0 0 1 0 1 0
0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0
5. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n∈∈∈∈[2,102]) și
un șir de n numere naturale din intervalul [0,104] și construiește în memorie un tablou
bidimensional cu n linii şi n coloane, numerotate începând de la 0, astfel încât parcurgând
orice coloană numerotată cu un număr par, de jos în sus, sau orice coloană numerotată cu
un număr impar, de sus în jos, se obține șirul citit, ca în exemplu. Programul afișează pe
ecran tabloul obținut, fiecare linie a tabloului pe câte o linie a ecranului, elementele de pe
aceeași linie fiind separate prin câte un spațiu.
Exemplu: dacă n=4, iar șirul citit este 7 2 5 3, se obține tabloul
alăturat.
(10p.)
3 7 3 7
5 2 5 2
2 5 2 5
7 3 7 3

Subiectul · pagina 3

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 1
Limbajul C/C++
Filiera teoretică, profilul real, specializările: matematică-informatică, matematică-informatică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică-informatică
3 din 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. Indicați ce se
afișează în urma apelului de
mai jos.
f(7);
(4p.)
void f(int n)
{ cout<<n%2; | printf("%d",n%2);
if(n>=3) f(n-3);
}
a. 10 b. 010 c. 101 d. 1010
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
2. Utilizând metoda backtracking, se generează toate posibilitățile de a forma seturi de câte 5
instrumente de scris distincte din mulţimea {stilou, pană, toc, creion, pensulă},
astfel încât în fiecare set creionul precede stiloul și pana. Două seturi sunt distincte dacă
instrumentele sunt dispuse în altă ordine.
Primele cinci soluţii generate sunt, în această ordine, (toc, creion, stilou, pană,
pensulă), (toc, creion, stilou, pensulă, pană), (toc, creion, pană, stilou,
pensulă), (toc, creion, pană, pensulă, stilou), (toc, creion, pensulă, stilou,
pană). Scrieţi cea de a şasea şi cea de a şaptea soluţie, în ordinea generării acestora.
(6p.)
3. Subprogramul interval are un singur parametru, n, prin care primeşte un număr natural
(n∈∈∈∈[3,106]). Subprogramul returnează cel mai mic număr natural x (n<x) care NU este
prim, cu proprietatea că în intervalul [n,x] există un singur număr prim.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=8, subprogramul returnează numărul 12. (10p.)
4. Primii termeni ai șirului definit alăturat
(unde n este un număr natural nenul)
sunt:
0, 3, 8, 15, 24, 35, 48, 63, 80 ....
fn= 
0 dacă n====1
3 dacă n====2
2∙∙∙∙fn-1-fn-2++++2 altfel
Se citesc de la tastatură două numere naturale din intervalul [0,109], x și y,
reprezentând valorile a doi termeni aflați pe poziții consecutive în şirul dat (x<y), ş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 mai mici sau egali cu y.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei
utilizate.
Exemplu: dacă se citesc numerele
48 63
fişierul bac.txt conţine numerele
63 48 35 24 15 8 3 0
a) Descrieţi în limbaj natural algoritmul proiectat, justificând eficienţa acestuia. (2p.)
b) Scrieţi programul C/C++ corespunzător algoritmului proiectat. (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 1
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 din 2
Examenul de bacalaureat naţional 2018
Proba E. d)
Informatică
Barem de evaluare și de notare
(comun pentru limbajele C/C++ şi Pascal)
Varianta 1
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. b 4p.
2. a) Răspuns corect: 55533 6p.
b) Pentru răspuns corect 4p. Se acordă câte 1p. pentru fiecare dintre
numerele cerute (oricare patru dintre
722, -722, 712, -712, 702, -702).
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ă de structură
repetitivă conform cerinței.
d) Pentru program corect
-declarare a variabilelor
-citire a datelor
-afişare a datelor
-instrucţiuni de decizie corecte (*)
-instrucţiune repetitivă corectă
-atribuiri corecte
-corectitudine globală a programului1)
10p.
1p.
1p.
1p.
3p.
2p.
1p.
1p.
(*) Se acordă numai 2p. dacă doar una dintre
instrucțiunile de decizie este conform cerinței.
SUBIECTUL al II - lea (30 de puncte)
1. a 4p.
2. c 4p.
3. Pentru rezolvare corectă
-acces corect la câmpurile înregistrării
-determinare și memorare a valorilor
conform cerinței
-afișare a mesajului conform cerinței
-corectitudine globală a secvenţei1)
6p.
2x1p.
2x1p.
1p.
1p.

Baremul · pagina 2

Ministerul Educaţiei Naționale
Centrul Naţional de Evaluare şi Examinare
Probă scrisă la informatică Varianta 1
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 din 2
4. Pentru răspuns corect 6p. Se acordă câte 2p. pentru fiecare dintre
nodurile cerute (oricare trei dintre nodurile
3, 4, 5, 7, 8).
5. Pentru program corect
-declarare a unei variabilei de tip tablou
bidimensional
-citire a datelor
-memorare a valorilor elementelor (*)
-afişare a unui tablou
-declarare a variabilelor simple,
corectitudine globală a programului1)
10p.
1p.
1p.
6p.
1p.
1p.
(*) Se acordă câte 2p. pentru fiecare aspect
al cerinței (valori citite memorate pe coloane
de sus în jos, valori citite memorate pe
coloane de jos în sus, coloane suport).
SUBIECTUL al III - lea (30 de puncte)
1. c 4p.
2. Răspuns corect:
(toc, creion, pensulă, pană, stilou)
(toc, pensulă, creion, stilou, pană)
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 a parametrului
-determinare a numărului cu
proprietatea cerută (*)
-returnare a rezultatului
-declarare a tuturor variabilelor
locale, corectitudine globală a
subprogramului1)
10p.
1p.
1p.
6p.
1p.
1p.
(*) Se acordă câte 3p. pentru fiecare aspect
al cerinței (algoritm de determinare a unui
număr prim, cel mai mic număr care nu este
prim 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 scrierii, scriere
în fişier
-determinare a valorilor cerute (*, **)
-utilizare a unui algoritm eficient (***)
-citirea și afișare a datelor, declarare
a tuturor variabilelor, 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. dacă algoritmul
este principial corect, dar nu oferă rezultatul
cerut pentru toate seturile de date de intrare.
(***) Se acordă punctajul numai pentru un
algoritm liniar, care utilizează eficient
memoria.
O soluţie posibilă generează termenii șirului
astfel: dacă w, x și y sunt termeni aflați pe
poziții consecutive în șir, x și y fiind
cunoscuți/calculați, atunci w=2*x-y+2.
1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.