Sunteți pe pagina 1din 5

VARIANTA 12 - SUBIECTUL 1 (30p)

Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.

1. Indicaţi expresia care are valoarea true/1 dacă şi numai dacă valoarea reţinută de variabila n NU aparţine
intervalului [a,b], unde a<b. (4p.)

Limbajul C/C++

a) n<a && n>b

b) n<=a || n>=b

c) !(n>a && n<b)

d) n<a || n>b

2. Se consideră algoritmul următor reprezentat în pseudocod:


S-a notat cu x%y restul împărţirii numerelor întregi x şi y.

a) Ce valoare va fi afişată dacă se citesc valorile 20 şi 3? (6p.)

b) Pentru k=6, scrieţi cea mai mare valoare care poate fi introdusă pentru n astfel încât rezultatul afişat să
fie 60. (6p.)

c) Scrieţi în pseudocod un algoritm, echivalent cu cel dat, care să nu conţină structuri repetitive. (4p.)

d) Scrieţi programul Pascal/C/C++ corespunzător algoritmului dat. (10p.)


VARIANTA 12 - SUBIECTUL 2 (30p)

Pentru itemii 1 şi 2, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.

1. Se consideră un graf neorientat G cu 5 vârfuri şi 8 muchii. Care dintre următoarele afirmaţii este,
oricum am considera dispuse cele 8 muchii în graf, cu siguranţă falsă? (4p.)

a. G este conex

b. G este ciclic (are cel puţin un ciclu)

c. G este complet

d. G este hamiltonian

2. Se consideră tipul de date punct, capabil să memoreze abscisa şi ordonata unui punct din plan şi
tipul de date segment, capabil să memoreze două puncte distincte reprezentând extremităţile unui
segment din plan. Care dintre următoarele expresii are ca valoare abscisa mijlocului segmentului
corespunzător variabilei s de tipul segment? (4p.)

Limbajul C/C++

a. (A.x+B.x)/2

b. s.(A.x+B.y)/2

c. (A.s.x+B.s.x)/2

d. (s.A.x+s.B.x)/2

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

3. Se consideră un graf orientat G cu mulţimea vârfurilor V={1,2,3,4,5} şi mulţimea


arcelor E={(1,5),(2,3),(3,2},(4,1),(5,4),(5,2)}. Care este numărul minim de arce care
pot fi adăugate la E astfel încât G să devină tare conex? Câte variante de alegere a acestora
există? (6p.)

4. Se consideră următoarele declarări de variabile:

Limbajul C/C++
Variabila s memorează un text format din exact două cuvinte separate prin unul sau mai multe
caractere spaţiu sau virgulă. Cuvintele sunt formate din litere mici şi mari ale alfabetului englez.
Scrieţi doar secvenţa de instrucţiuni care transformă şirul dat astfel încât ordinea literelor primului
cuvânt să fie inversată. De exemplu, dacă iniţial s reţine textul: Gigel invata, în urma executării
secvenţei de instrucţiuni cerute s va deveni: legiG invata. (6p.)

5. Scrieţi un program care citeşte de la tastatură două numere naturale m şi n (2≤m≤20,


2≤n≤20) şi m linii a câte n numere (valorile de pe fiecare linie în parte fiind separate prin câte un
spaţiu), reprezentând componentele unei matrice cu m linii şi n coloane. Elementele matricei sunt
numere întregi având fiecare cel mult 4 cifre. Programul va transforma matricea astfel încât fiecare
linie să aibă aceleaşi elemente, dar pe prima poziţie să se afle cel mai mare număr din linie, iar pe
ultima poziţie cel mai mic număr. Noua matrice va fi afişată pe ecran pe linii, cu spaţii între
elementele de pe fiecare linie.
De exemplu, dacă se citesc de la tastatură m=3, n=5 şi matricea de mai jos
10 5 18 2 14
21 4 12 8 9
5 11 51 100 8
atunci o matrice posibilă ce poate fi construită afişată este:
18 5 10 14 2
21 12 8 9 4
100 11 51 8 5
(10p.)
VARIANTA 12 - SUBIECTUL 3 (30p)

Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.

1. Utilizând metoda backtracking se generează, în ordinea crescătoare a valorii, toate


numerele formate din exact n cifre care au suma cifrelor s. Astfel,
pentru n=2 şi s=4 se obţin, în ordine, numerele: 13, 22, 31, 40. Folosind aceeaşi
metodă, se generează numerele formate din trei cifre, având suma cifrelor 5.
Care va fi al şaselea număr generat? (4p.)

a) 203 b) 212 c) 140 d) 230

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

2. Subprogramul f are definiţia următoare:

Limbajul C/C++

Ce se va afişa în urma apelului f(3,3)? Ce se va afişa în urma apelului f(2,4)? (6p.)

3. a) Scrieţi definiţia completă a unui subprogram desc, cu patru parametri:


 n, prin intermediul căruia primeşte un număr natural format din cel
mult 9 cifre
 d, prin intermediul căruia primeşte un alt număr natural format din cel
mult 9 cifre
 p, prin intermediul căruia furnizează cea mai mare putere a lui d care îl
divide pe n
 e, prin intermediul căruia furnizează exponentul corespunzător lui p
De exemplu, dacă n=48 şi d=2, atunci prin intermediul parametrilor p şi e vor fi
furnizate rezultatele 16 şi respectiv 4, pentru că 24=16 îl divide pe 48, iar 25=32 nu
îl divide pe 48. (4p.)
b) Scrieţi un program Pascal/C/C++ care, folosind apeluri utile ale
subprogramului desc descris la punctul a), determină şi afişează pe ecran
descompunerea în factori primi a unui număr natural n(2≤n≤1000000) citit de la
tastatură. Se vor afişa pe ecran divizorii primi ai lui n şi puterile la care aceştia apar
în descompunerea lui n, toate numerele fiind scrise pe o singură linie, separate prin
câte un spaţiu.
Exemplu: dacă de la tastatură se citeşte n=18 (care are descompunerea în factori
primi 21*32), atunci programul va afişa pe ecran
2 1 3 2
iar dacă se citeşte x=360 (care are descompunerea în factori primi 23*32*51), se va
afişa
2 3 3 2 5 1
(6p.)

4. Fişierul text bac.in conţine pe prima linie cel mult 1000000 de numere naturale
de cel mult 5 cifre fiecare, separate prin câte un spaţiu, ordonate strict crescător.
a) Scrieţi un program care citeşte de la tastatură un număr natural a (0≤a≤10000)
şi, folosind un algoritm eficient atât din punctul de vedere al timpului de executare,
cât şi al spaţiului de memorie utilizat, determină şi afişează pe ecran, pe o singură
linie, separate prin câte un spaţiu, numerele din fişierul bac.in care sunt puteri ale
lui a. (8p.)
Exemplu: dacă fişierul bac.in are conţinutul:
1 2 3 4 6 7 8 9 11 15 16 21 22 128 129
şi de la tastatură se introduce a=2, atunci programul va afişa pe ecran:
1 2 4 8 16 128
b) Descrieţi în limbaj natural metoda utilizată şi explicaţi în ce constă eficienţa
ei. (2p.)

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