You are on page 1of 2

Tutoriale Pe NET

Examenul național de bacalaureat 2022


Proba E. d)
Informatică
Limbajul C/C++
Simulare
Filieră teoretică, profil real, specializare matematica-informatica
• Toate subiectele sunt obligatorii. Se acordă zece puncte din oficiu.
• Timpul de lucru efectiv este de trei ore.
• Identificatorii utilizați în rezolvări 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ă). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
SUBIECTUL I (20 de puncte)
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului
corect. Fiecare răspuns corect se notează cu 4 puncte.
1. Variabila x este de tip rațional. Indicați expresia care are valoarea 1, doar în cazul în care valoarea lui x
nu poate aparține mulțimii numerelor întregi. (4p.)

a. (x == (int)(x)) b. (!x == (int)(x))


c. (x - (int)(x) > 0) d. (x - (int)(x) == 0)

2. Subprogramul f este definit alăturat. Știind că v memorează int f(int st, int dr, int v[], int x) {
tabloul cu elementele (2, 5, 8, 33, 129, 230), în aceasta ordine, if(v[(st + dr) / 2] == x)
numerotate de la 0 la 5 iar x memorează valoarea 5, indicați return 1;
if(v[(st + dr) / 2] > x)
valoarea f(0, 5, v, x)
return 1 + f(st, (st + dr) / 2 - 1, v, x);
return 1 + f((st + dr) / 2 + 1, dr, v, x);
a. 2 b. 4 c. 3 d. 10 }

3. Cristian a primit o temă ce consta în scrierea lui 16 că suma de 4 numere aflate în ordine crescătoare. Astfel
primele 4 soluții generate sunt {1, 2, 4, 9}, {1, 2, 5, 8}, {1, 2, 6, 7}, {1, 3, 4, 8}. Indicați soluția generată imediat
după {1 ,3 ,5 ,7}

a. {1, 3, 4, 8} b. {1 ,4 ,5 ,6}
c. {2 ,3 ,4 ,7} d. {2 ,3 ,5 ,6}

4. Variabila ziar declarată alăturat, memorează date despre 1000 de ziare si contine titlul acestora si anul
aparitiei. Stiindu-se că acestea sunt numerotate de la 1, indicați expresia care afișează atât titlul cât și
mileniul în care a fost redactat ziarul cu numărul 5, separate printr-un spatiu.Mileniul unui an este fie prima
cifră a anului, în cazul în care anul este un număr ce are la sfârșit 3 zerouri (1000, 2000, 3000.. etc) fie
prima cifră a anului + 1 dacă anul este compus din cel puțin 2 cifre diferite(2001, 2010.. etc).
(4p.)
a. cout << ziar[4].titlu << ' ' << ziar[4].an_aparitie / 1000
struct {
a. cout << titlu[0].ziar[5] << ' ' << ziar[0].an_aparitie / 1000 char titlu[50];
int an_aparitie;
a. cout << ziar[4].titlu << an_aparitie % 1000 } ziar[1000];
(4p.)
a. cout << ziar[5].titlu << ziar[5].an_aparitie / 1000 + (ziar[5].an_aparitie % 1000 != 0)

5. Se consideră graful neorientat reprezentat prin următoarea lista de muchii [1, 2], [1, 3], [1, 5], [1, 6],
[2, 3], [2, 4], [6, 3], [6,5]. Câte dintre aceste noduri au ca grad un număr impar?

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

Probă scrisă la informatică Simulare


Limbajul C/C++
Filieră teoretică, profil real, specializare
matematica-informatica Pagina 1 din 2
Tutoriale Pe NET

SUBIECTUL al II-lea (40 de puncte)


1. S-a notat cu a%b restul împărțirii numărului natural a la citește x,y (numere naturale nenule)
numărul natural nenul b și cu [a] partea întreagă a n←x;
numărului real a. ┌cât timp x>9 execută
a) Scrieți ce se afișează în urma executării algoritmului │ aux←x; s←0
│┌cât timp aux>0 execută
dacă se citesc, în această ordine, numerele 2812, 1423
││ s←s + aux % 10
(6p.) ││ aux←[aux/10]
│└■
b) Dati exemple de 2 numere din intervalul [100, 1000], │ x←s
astfel incat mesajul afisat sa contina caracterul '=' (6p.) └■
daca x % 9 > y % 9
c) Scrieți programul C/C++ corespunzător algoritmului scrie n, '>', y
altfel daca x % 9 < y % 9
dat. (6p)
scrie n, '<', y
altfel (10p.)
d) Scrieți în pseudocod un algoritm, echivalent cu cel dat, scrie n, '=', y
înlocuind adecvat prima structură cât timp...execută cu
o structură repetitivă cu timp final. (6p)
2. Un arbore cool este un arbore unde fiecare nod poate avea maxim 2 fi/descendenți direcți. Din
moment ce are maxim 2 fi, o să îi dăm câte o culoare fiecăruia. Fiul din stânga va avea culoarea roșie, iar
cel din dreapta albastră. În caz de există doar un singur fiu, acesta va avea culoare mov. Un arbore cool
cu rădăcină are 12 noduri și este reprezentat prin vectorul de "tați" (4, 5, 4, 5 ,0, 2, 3, 9, 6, 6, 10, 8). Scrieți
3 dintre nodurile care au culoarea mov. (6p)

3. Variabila s este un sir de de maxim 20 de caractere, ce memorează char s[20] = "thmulare2022";


textul "thmulare2022". Înlocuiți punctele de suspensie din dreapta, astfel s[0] = .....;
încât la final, pe ecran sa se afiseze "simularepdi". (6p) s[1] = .....;
strcpy(s + 8, "pdh");
s[....] = ......;
.... s;
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul divk are 3 parametrii:
- x si y prin care primeste cate un numar din intervalul [1, 105]
- k, prin care furnizează numărul de divizori diferiți dintre x si y, respectiv -1 daca au doar divizori
comuni.
Scrieti definitia subprogramului.
Exemplu: pentru x = 30, y = 10, valoarea lui k va fi 4 deoarece y nu are ca divizori pe 3, 6, 15 si 30.
(10p.)
2. 2 șiruri sunt asemenea, daca schimbând pozițiile elementelor din primul șir, putem ajunge să creeam al
doilea șir sau invers. De exemplu șirurile (1, 5, 9) și (9, 1, 5) sunt asemenea dar șirurile (1, 2, 3), (3,2, 1, 4)
nu sunt. De la tastatură se citesc numere din intervalul [1, 100], elemente ale unui tablou bidimensional T,
respectiv N, numărul de linii, M, numărul de coloane, K, și P.
Se cere să se afișeze pe ecran mesajul "DA", daca elementele de pe linia K respectiv elementele de pe
coloana P sunt 2 șiruri asemenea, "NU", daca nu sunt, sau "INCOMPATIBILE" daca cele 2 șiruri sunt de
lungimi diferite. (10p)
Exemplu: pentru N = 4, M = 4, K = 3, P = 3,
T = [(1, 2, 3, 4), (9, 8, 1, 3), (1, 0, 8, 2), (2, 1, 2, 5)] se afișeaza mesajul "DA" deoarece avem aceleasi
elemente si pe coloana 3, si pe linia 3, dar intr-o ordine diferita.
3. Numim o secvență de numere, un șir format doar din numere aflate pe poziții consecutive. Din fișierul
bac.in se citesc maxim 107 numere întregi din intervalul [-106, 106] și se cere să se calculeze și să se scrie
în fișierul bac.out suma maximă care se poate obtine adunand elemente unei secvențe, cât și lungimea
secvenței de suma maximă, separate printr-un spațiu. Dacă există mai multe secvențe de sumă maximă,
se va afișa cea mai din stânga.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei utilizate.
Exemplu:
pentru sirul 1 -2 -3 4 -1 10 -2 4 -2 se va afisa pe ecran 15 5
Numerele ce fac parte din secventa de sumă maximă sunt subliniate.
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.)

Probă scrisă la informatică Simulare


Limbajul C/C++
Filieră teoretică, profil real, specializare matematica-
informatica Pagina 2 din 2

You might also like