Sunteți pe pagina 1din 3

Ministerul Educaiei, Cercetrii, Tineretului i Sportului

Centrul Naional de Evaluare i Examinare



Prob scris la Informatic Varianta 2
Limbajul C/C++
Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic
Filiera vocaional, profilul militar, specializarea matematic-informatic
1
Examenul de bacalaureat 2012
Proba E. d)
Proba scris la INFORMATIC
Limbajul C/C++
Varianta 2

Filiera teoretic, profilul real, specializrile: matematic-informatic
matematic-informatic intensiv informatic
Filiera vocaional, profilul militar, specializarea matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din
enun (bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu
semnificaiile 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, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x i y sunt de tip ntreg (0<x<y). Indicai expresia care are valoarea 1 dac i
numai dac n intervalul deschis (x,y)NU sunt numere naturale pare. (4p.)
a.
x%2==0 && y-x<=2 || x%2==1 && y-x==1
b.
x%2==0 || y-x<=2 && x%2==1 || y-x==1
c.
x%2==0 && y-x<=2 && x%2==1 && y-x==1
d.
x%2==0 || y-x<=2 || x%2==1 || y-x==1

2. Se consider algoritmul alturat,
reprezentat n pseudocod.
S-a notat cu x%y restul mpririi numrului
natural x la numrul natural nenul y i cu
[z] partea ntreag a numrului real z.
a) Scriei valoarea afiat dac se citesc,
n aceast ordine, numerele 5, 6782,
123, 5421, 2, 78664. (6p.)
b) Scriei un ir de date de intrare, format
doar din numere naturale cu cel mult
dou cifre fiecare, astfel nct n urma
executrii algoritmului, s se afieze
valoarea 2012. (4p.)
citete n (numr natural, n9)
m 0
ct timp n>0 execut
n n-1
citete x (numr natural)
c 0
ct timp x%10<[x/10]%10 execut
c [x/10]%10
x [x/10]

m m*10+c

scrie m
c) Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc prima
structur ct timp...execut cu o structur repetitiv de tip pentru ... execut.
(6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii, Tineretului i Sportului
Centrul Naional de Evaluare i Examinare

Prob scris la Informatic Varianta 2
Limbajul C/C++
Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic
Filiera vocaional, profilul militar, specializarea matematic-informatic
2
SUBIECTUL al II-lea (30 de puncte)
Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera corespunztoare
rspunsului corect.
1. Se consider arborele cu 7 noduri, numerotate de la 1 la 7, reprezentat prin vectorul de
tai (0,1,1,3,4,4,5). Nodurile de tip frunz ale arborelui sunt: (4p.)
a.
1
b.
1,4,7
c.
2,6,7
d.
1,3,4,5
2. Se consider graful neorientat cu ase noduri, reprezentat
alturat.
Numrul minim de muchii ce pot fi eliminate, astfel nct n graful
parial obinut gradele nodurilor s fie egale, este: (4p.)

a.
1
b.
2
c.
3
d.
4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider declarrile alturate, n care variabilele s1 i s2
memoreaz coordonatele, n sistemul de coordonate xOy, ale
extremitilor cte unui segment.
Scriei o expresie C/C++ care are valoarea 1 dac i numai
dac segmentele corespunztoare variabilelor s1 i s2 au
comun extremitatea memorat n cmpul A. (6p.)
struct punct {
int x,y;
};
struct segment {
punct A,B;
}s1, s2;
4. n secvena de instruciuni de mai jos variabilele i i j sunt de tip ntreg, iar variabila A
memoreaz un tablou bidimensional cu 6 linii i 6 coloane, numerotate de la 1 la 6, cu
elemente numere ntregi.
Fr a utiliza alte variabile, scriei una sau mai multe instruciuni care pot nlocui punctele
de suspensie astfel nct, n urma executrii secvenei obinute, tabloul memorat n
variabila A s aib elementele din figura de mai jos.

for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
..................
(6p.)
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
5. Scriei un program C/C++ care citete de la tastatur dou iruri, fiecare fiind format din cel
mult 30 de caractere. Dup primul ir se tasteaz Enter. Primul ir este format numai din
litere mici ale alfabetului englez, iar cel de-al doilea ir este format numai din litere mici ale
alfabetului englez i caractere *. Programul verific dac, nlocuind n cel de-al doilea ir
toate caracterele * cu litere mici, irul obinut este un subir al primului ir. n caz afirmativ,
programul afieaz pe ecran irul obinut, altfel afieaz mesajul imposibil. Dac se pot
obine mai multe astfel de iruri, se afieaz doar unul dintre ele.
Exemplu: dac se citesc, n ordine, irurile:
albastrui
a**r*
atunci pe ecran se afieaz astru (10p.)

Ministerul Educaiei, Cercetrii, Tineretului i Sportului
Centrul Naional de Evaluare i Examinare

Prob scris la Informatic Varianta 2
Limbajul C/C++
Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic
Filiera vocaional, profilul militar, specializarea matematic-informatic
3
SUBIECTUL al III-lea (30 de puncte)
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz, n ordine lexicografic, toate irurile obinute
prin permutarea literelor din mulimea {b, r, a, d}. Primele dou iruri obinute sunt, n
aceast ordine, abdr i abrd. Al 5-lea ir generat este: (4p.)
a.
arbd
b.
ardb
c.
bdar
d.
bdra

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Scriei ce se afieaz n urma
apelului de mai jos.
f(9);
(6p.)
void f(int x)
{ if(x>0)
{ if(x%2==0)
cout<<'*'; | printf(*);
f(x/2);
}
cout<<x+1; | printf(%d,x+1);
}
3. Se consider subprogramul elimina, cu doi parametri:
n, prin care primete o valoare natural 2<n<50;
v, prin care primete un tablou unidimensional cu n elemente, numere ntregi cu cel mult
4 cifre. Cel puin dou dintre elementele alturate ale tabloului sunt nule.
Subprogramul elimin din tablou un numr minim de elemente astfel nct s nu existe
dou elemente alturate cu valoarea 0. Tabloul modificat, precum i valoarea actualizat a
lui n, sunt furnizate tot prin parametrii v, respectiv n.
Scriei definiia complet a subprogramului.
Exemplu: dac n=11 i v=(0, 2, 0, 0, 0, 0, -7, 0, 0, 3, 5), atunci dup apel n=7, iar
v=(0, 2, 0, -7, 0, 3, 5). (10p.)
4. Fiierul bac.txt conine cel puin dou i cel mult 1000000 numere ntregi, separate
prin cte un spaiu. Fiecare numr are cel mult 9 cifre.
Se cere s se afieze pe ecran, separate printr-un spaiu, cele mai mici dou valori
distincte memorate n fiier. Dac n fiier nu exist dou astfel de valori, pe ecran se
afieaz mesajul Nu exista.
Pentru determinarea numerelor cerute se utilizeaz un algoritm eficient din punctul de
vedere al memoriei i al timpului de executare.
Exemplu: dac fiierul bac.txt conine valorile 26 -9023 29 -9023 90 3 234
se afieaz pe ecran, nu neaprat n aceast ordine, numerele -9023 3.
a) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia. (4p.)
b) Scriei programul C/C++ corespunztor algoritmului descris. (6p.)

S-ar putea să vă placă și