Sunteți pe pagina 1din 6

Structuri de date

Tema 1

1. Se consider  un vector de numere v cu n elemente. S  se determine care este


elementul minim ³i de câte ori apare în ³ir, printr-o singur  parcurgere a ³irului
(în afar  de citire). (1p)
2. Se consider  vectorul de numere v cu n elemente numere naturale. S  se
determine ce num r apare cel mai des ³i de câte ori. (1p)
3. S  se verice dac  un vector este sortat ³i dac  da, s  se specice cum este
sortat, cresc tor sau descresc tor. (1p)
4. Scrieµi o funcµie care interschimb  coloanele unei matrici cu m linii ³i n coloane,
astfel încâ t elementele din linia k s  e în ordine cresc toare (1p)
5. Un profesor a studiat structura relaµiilor dintre elevii s i. Pentru a reprezenta
aceast  structur , profesorul a numerotat elevii de la 1 la n ³i a construit o
matrice p tratic  cu n linii astfel: a(i, j) = 1 dac  elevul i îl agreeaz  pe elevul
j ³i 0 altfel. Se consider  c  ecare elev se agreeaz  pe sine însu³i. (1p)

a. A³aµi pe ecran toate perechile distincte de elevi care se agreeaz  reciproc.


b. A³aµi elevii care nu agreeaz  pe nimeni.
c. A³aµi elevii care nu sunt agreeaµi de nimeni
Exemplu : se consider  5 elevi ³i matricea de prietenie urm toare
 
1 1 0 0 1

 1 1 0 0 1 


 0 0 1 0 0 

 1 1 0 1 1 
0 1 0 1 1

a. Elevii care se agreeaz  reciproc sunt: (1,2), (2,5), (4,5)


b. Elevul care nu agreeaz  pe nimeni este 3

1
c. Elevul care nu este agreeat de nimeni este 3.
6. S  se scrie într-o matrice p tratic  numerele de la 1 la n2 în spiral : (2p)
• pentru n impar începând din centru
• pentru n par începând din colµul stânga-sus

Exemplu:

1 2 3 4
9 8 7 12 13 14 5
2 1 6 11 16 15 6
3 4 5 10 9 8 7
n=3 n=4

7. Tip riµi sumele elementelor aate pe p tratele concentrice ale unei matrice


p tratice. (2p)
Exemplu: Se consider  matricea

 
1 2 1 0 3

 2 3 4 5 1 


 4 1 11 6 0 

 1 9 0 2 4 
0 0 1 2 2

Atunci p tratele concentrice ³i sumele sunt:

1 2 1 0 3 1 2 1 0 3 1 2 1 0 3
2 3 4 5 1 2 3 4 5 1 2 3 4 5 1
4 1 11 6 0 4 1 11 6 0 4 1 11 6 0
1 9 0 2 4 1 9 0 2 4 1 9 0 2 4
0 0 1 2 2 0 0 1 2 2 0 0 1 2 2
s1=24 s2=30 s3=11

8. S  se completeze elementele unei matrice astfel: pe prima linie elementele


dintr-un vector v . Pe ecare dintre urm toarele linii permutarea circular  a
liniei precedente. (1p)

2
Exemplu: Se consider  vectorul v = {1, 2, 3, 4, 5} cu n = 5 elemente. Ma-
tricea rezultat  este  
1 2 3 4 5
 2 3 4 5 1 
 
 3 4 5 1 2 
 
 4 5 1 2 3 
5 1 2 3 4
9. Se consider  o matrice p tratic  A de dimensiuni n × n, subdiagonal . O
matrice se nume³te subdiagonal  dac  toate elementele aate deasupra diago-
nalei principale sunt nule. Observaµie: suma ³i produsul a dou  matrice
subdiagonale sunt tot matrice subdiagonale.
a. S  se transforme partea util  a matricii (adic  elementele de pe diagonala
principal  ³i de sub diagonala principal ) într-un vector. (1p)
b. S  se scrie un algoritm care cite³te 2 matrice subdiagonale A ³i B , le
transform  conform (a) în doi vectori Va ³i Vb ³i apoi calculeaz  produsul
C = AB al celor dou  matrice folosind doar vectorii Va ³i Vb . (3p)

Exemplu: Se consider  matricea subdiagonal 


 
1 0 0 0 0

 2 3 0 0 0 

A=
 4 1 3 0 0 

 1 9 0 2 0 
1 0 1 2 2
a. Partea util  este Va = {1, 2, 3, 4, 1, 2, 1, 9, 0, 2, 1, 0, 1, 2, 1}
b. Dac  se consider  matricea
 
2 0 0 0 0

 1 1 0 0 0 

B=
 0 1 2 0 0 

 1 1 2 3 0 
2 0 0 1 2
Atunci Vb = {2, 1, 1, 0, 1, 2, 1, 1, 2, 3, 2, 0, 0, 1, 2}, iar produsul celor
dou  matrice este Vc = {2, 7, 3, 9, 4, 6, 13, 11, 4, 6, 8, 3, 6, 8, 4} care
reprezint  matricea
 
2 0 0 0 0

 7 3 0 0 0 

C=
 9 4 6 0 0 

 13 11 4 6 0 
8 3 6 8 4

3
10. Se consider  un cub de dimensiune n × n × n care conµine numerele de la 1 la
n3 dispuse în modul urm tor:

• pe ecare strat impar ordonate în spiral  începând din colµul stânga sus,
în sensul acelor de ceasornic
• pe ecare strat par ordonate în spiral , pornind de la elementul aat
deasupra ultimului element parcurs pe stratul anterior ³i în sens invers
acelor de ceasornic.
Exemplu: pentru n = 4

1 2 3 4 32 31 30 29 33 34 35 36 64 63 62 61
12 13 14 5 21 20 19 28 44 45 46 37 53 52 51 60
11 16 15 6 22 17 18 27 43 48 47 38 54 49 50 59
10 9 8 7 23 24 25 26 42 41 40 39 55 56 57 58
strat 1 strat 2 strat 3 strat 4

a. Dac  se cite³te un num r p, s  se determine poziµia în cub - adic  co-


ordonatele x - linia, y - coloana, z - strat, f r  a construi efectiv cubul.
(2.5p)
b. S  se determine num rul de numere prime de pe ecare faµ  lateral  a
cubului. (2.5p)

Observaµie: Punctajul maxim se obµine pentru consum de memorie minim


³i ecienµ  maxim , evitând construcµia efectiv  a cubului (care este O(n3 )).
Precizaµi complexitatea pentru ecare punct în parte.

În exemplul de mai sus:


a. Num rul 45 are coordonatele (2, 2, 3).
b. Numerele prime de pe feµele laterale sunt reprezentate în p tratele gri
din gura de mai jos

61 62 63 64 58 59 60 61 55 56 57 58 64 53 54 55
36 35 34 33 39 38 37 36 42 41 40 39 33 44 43 42
29 30 31 32 26 27 28 29 23 24 25 26 32 21 22 23
4 3 2 1 7 6 5 4 10 9 8 7 1 12 11 10
fata 1 fata 2 fata 3 fata 4

4
11. Jocul beta³ah se joac  folosindu-se doar piese asem n toare damelor clasicu-
lui ³ah, numite tot dame. Suprafaµa de joc are o form  triunghiular  ³i este
format  din N ∗(N2 +1) p trate identice dispuse pe N rânduri ³i N coloane. Rân-
durile se numeroteaz  de sus în jos, de la 0 la N − 1. Coloanele se numeroteaz 
de la stânga la dreapta, de la 0 la N − 1. Primul rând (de indice 0) conµine un
singur p trat, al doilea rând (de indice 1) conµine dou  p trate al turate,...,
al N -lea rând (de indice N − 1) conµine N p trate al turate, ca în suprafeµele
de joc cu N = 6 din gurile de mai jos. Din cele N ∗(N2 +1) p trate, K sunt gri,
iar restul sunt albe. Poziµia ec rui p trat de pe suprafaµa de joc este dat  de
rândul ³i coloana în care acesta este situat.
Pe suprafaµa de joc sunt a³ezate D dame în D p trate albe distincte, ocupându-
le. Într-un p trat alb poate  a³ezat  o singur  dam , iar într-un p trat gri
nu poate  a³ezat  nicio dam . Poziµia unei dame pe suprafaµa de joc este
dat  de poziµia p tratului alb în care este a³ezat  dama.

a) N=6 b) c) N=6, D=1, d)N=6, D=3,


0 7 0 1 0 0
K=2 K=4
1 1 X X 1
2 2 X D X 2 D
3 6 D 2 3 X X X 3
4 4 X X 4 D D
5 5 X X 5
0 1 2 3 4 5 5 4 3 0 1 2 3 4 5 0 1 2 3 4 5

Damele pot accesa orice p trat alb neocupat situat pe direcµiile: vertical ,
orizontal  sau diagonal , numerotate de la 0 la 7 în gura b). Accesul pe o
direcµie se face trecând din p trat alb în p trat alb (doar p trate albe neocu-
pate) pân  la întâlnirea unui p trat gri sau a unui p trat alb ocupat de o alt 
dam  sau pân  la terminarea suprafeµei de joc.
Numim p trat accesibil orice p trat alb neocupat (de pe suprafaµa de joc)
care ar putea  accesat de cel puµin una din cele D dame. De exemplu, pentru
suprafaµa de joc din gura c) num rul de p trate accesibile (marcate cu X) de
pe suprafaµ  este 11. P tratele r mase albe nu sunt atacate de nici o dama.
Pentru suprafaµa de joc cu N = 6, D = 3 ³i K = 4 un exemplu de suprafaµ 
de joc este gura d).
Scrieµi un program care s  citeasc  numerele naturale N , D, K , poziµiile
damelor ³i ale p tratelor gri pe suprafaµa de joc ³i care s  determine poziµiile
care nu sunt atacate de nicio dam  (adic  p tratele inaccesibile). (3p)
Observa³tie: Este obligatorie utilizarea aloc rii dinamice a memoriei pentru
vectori ³i matrice. Folosiµi sintaxa C++.

5
Evaluare: Rezolvaµi la alegere probleme. Fiecare problem  are al turi punctajul
aferent. Se acord  pentru aceast  tem  suma punctajelor problemelor rezolvate,
dar maxim nota 10. Un punct este din ociu. Se tine cont de criteriile generale de
evaluare, prezentate în lista de criterii de pe platform  de e-learning de la prima
unitate de înv µare.

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