Sunteți pe pagina 1din 3

Balcă Mariana-Mihaela, prof. C.N.

Școala Centrală - București


SIMULAREA EXAMENULUI DE BACALAUREAT – 2022
Proba E.d)
Proba scrisă la INFORMATICĂ
PROBA E, limbajul C++
Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv
informatică
Filieră vocațională, profil militar, specializare matematică-informatică
· Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu.
· Timpul de lucru efectiv este de 3 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ă.
· În grafurile din cerințe oricare arc/muchie are extremități distincte și oricare două arce/muchii
diferă prin cel puțin una dintre extremități.
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. Indicați valoarea minimă a expresiei C/C++ de mai jos, știind că x este o variabilă
de tip întreg care memoreză numere întregi cu maxim 4 cifre.
x%100/10-x/10%100+1
a. -91 b. -90
c. -89 d. 91
2. Utilizând metoda backtracking se generează toate numerele naturale formate cu
toate cifrele numărului 2022323. Două astfel de numere generate sunt 3322220 și
3322202. Precizați câte numere naturale distincte s-au generat în total.

a. 80 b.90 c.105 d.5040

3. Un arbore cu 2048 de noduri, numerotate de la 1 la 2048, are vectorul de tați


completat astfel: tata[x]=[x/2] (partea întreagă a împărțirii lui x la 2), pentru
orice x nod din arbore. Indicați care este lungimea maximă a unui lanț elementar
dintr-un astfel de arbore.
a.10 b.11 c.20 d.21
4. Un graf neorientat conex și fără cicluri are 226 elemente nule în matricea de
adiacență. Indicați care este gradul maxim pe care îl poate avea un nod în acest
graf.
a. 16 b. 15 c. 14 d. 1

5. Variabila A memorează un tablou bidimensional int i,s;


for(s=0,i=0; i<8; i++)
cu 8 linii şi 8 coloane, numerotate de la 0 la 7, {A[i][7-i]=A[7-i][i]+1;
s+=A[i][7-i]+ A[i][7];}
având iniţial toate elementele egale cu 2. cout<<s;
Precizați ce se afișează pe ecran după executarea
secvenţei de instrucţiuni alăturate.

a.45 b.44 c.28 d.12


SUBIECTUL al II-lea (40 de puncte)

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.


1. Algoritmul alăturat este reprezentat în pseudocod.
S-a notat cu a%b restul împărțirii numărului natural a citeşte a,b
la numărul natural nenul b și cu [c] partea întreagă a (numere naturale, a<b)
numărului real c. k0
┌pentru tb,a,-1 execută
| c0; x t
a. Scrieţi valoarea afişată dacă se citesc |┌cât timp x>0 execută
│| c c+x%2; x [x/2]
numerele 7 și 18. (6p.) │└■
|┌daca c=2 atunci
│|k k+1
b. │└■
Scrieţi cel mai mic, respectiv cel mai └■
scrie k
mare număr natural
care poate să fie citit pentru a astfel
încât, în urma executării algoritmului dat,
dacă b=64, să se afișeze valoarea 0.
(6p.)
c. Scrieţi programul C/C++ corespunzător
algoritmului dat. (10p.)

d.
Scrieţi în pseudocod un algoritm,
echivalent cu cel dat, înlocuind
adecvat structura
pentru...execută cu o structură
repetitivă de alt tip. (6p.)

2. Subprogramul f este definit alăturat. void f (char x)


Indicați ce se afișează pe ecran după aplelul {char y;
if (x>’a’)
f(’d’); {f(x-1);
y=x-32;
cout<<y; }
cout<<’*’; }
(6p.)
3. Variabila r memorează un număr rațional, unde în struct rational
{
câmpul a se reține numărătorul, iar în b numitorul lui r .
int a,b;
Fără a utiliza alte variabile decât cele declarate alăturat, }z,r;
scrieți o secvență de instrucțiuni în C/C++ care citește de la
tastatură două numere întregi nenule reprezentând
numărătorul și numitorul lui r, apoi atribuie variabilei z
valoarea inversului lui r. (6p.)
Subiectul III (30 de puncte)
Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
1. Subprogramul inserare are un singur parametru, n, prin care primeşte un număr
natural cu minim doua cifre si maxim 8 cifre. Subprogramul furnizează prin același
parametru numărul obținut din n prin inserarea, între oricare două cifre alăturate care
au aceeași paritate, a valorii 0. Scrieți definiția completă a subprogramului. Dacă în n
nu s-a inserat nicio valoare, atunci prin n se furnizează -1.
Exemplu: dacă n=6255, atunci, după apel, n=602505.
(10p.)
2. Se consideră un număr natural n, 7<n<20, și un text cu cel mult 200 de caractere,
format din cel puțin două cuvinte, în care cuvintele sunt formate din litere mici sau
mari ale alfabetului englez și sunt separate prin câte un spațiu. Toate cuvintele din text
au cel mult n caractere fiecare. Scrieți un program C/C++ care citește de la tastatură
numărul n, apoi citește un text de tipul menționat mai sus. Programul afișează pe
ecran cuvintele din text astfel încât pe fiecare rând să fie scrise cel mult n caractere,
iar textul să fie afișat pe un număr minim de rânduri. Textul afișat are cuvintele în
ordinea inițială, separate tot printr-un singur spațiu. După ultimul cuvânt al fiecărui
rând nu se plasează spațiu. (10p.)
Exemple:
Dacă pentru n se citește valoarea 10 și textul citit este
Cantece de dragoste si ura Leonard Cohen
pe ecran se afișează
Cantece de
dragoste
si ura
Leonard
Cohen

3. Fişierul date.in conţine minim două și maxim 1000000 de numere naturale


separate prin câte un spaţiu, formate din cel mult 8 cifre fiecare. Să se proiecteze un
algoritm care afișeaza pe ecran cifrele distincte impare situate pe poziția zecilor
corespunzatoare numerelor din fișier, în ordine descrescătoare, separate printr-un
spațiu. Daca nu există astfel de cifre, pe ecran se va afișa mesajul nu exista.
Proiectați un algoritm eficient din punctul de vedere al timpului de executare.

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.)
Exemple:
date.in

128 2715 17 1009 1 2775

Ecran
7 1

date.in

128 2785 47 1009 1 2745

Ecran
nu exista

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