Sunteți pe pagina 1din 23

Tipuri

structurate
de date

Tipul tablou

Sumar
1. Competene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Tipuri structurate de date. Tipul tablou . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Tablouri unidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Tablouri bidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Aplicaii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6. Bibliografie i webografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1. Competene
Competene generale
implementarea algoritmilor ntr-un limbaj de programare
aplicarea algoritmilor fundamentali n prelucrarea datelor
Competene specifice
identificarea necesitii structurrii datelor n tablouri
prelucrarea datelor structurate
utilizarea unui mediu de programare C++

2. Tipuri structurate de date. Tipul tablou


O structur de date reprezint un ansamblu (o colecie) de date
organizate dup anumite reguli, care depind de tipul de structur.
Dintre tipurile de structuri de date fac parte:
tablourile de memorie;
fiiere.

Tipuri structurate de date. Tipul tablou


Tablouri
Un tablou este o structur format dintr-un numr fix de componente de
acelai tip, numit tip de baz.
Tabloul reprezint o zon de memorie crei i se atribuie un nume i care
permite memorarea mai multor date de acelai tip. Aceste date pot fi
tratate ca un tot unitar sau ca date elementare independente.
Tablourile sunt de dou tipuri:
tablouri unidimensionale (vectori);
tablouri bidimensionale (matrici).

3. Tablouri unidimensionale
Tablouri unidimensionale (vectori)
Pentru a prelucra un set de valori de acelai tip, acesta trebuie memorat
ntr-o structur de date. O astfel de structur de date se numete ir, iar
valorile respective se numesc elementele irului.
n limbajul C++ elementele unui ir se memoreaz ntr-o singur variabil
indexat numit tablou unidimensional sau vector.
Elementele irului memorate ntr-un vector se numesc elementele
vectorului sau componentele vectorului.

Tablouri unidimensionale
Declarare vector
Sintaxa:

tip_dat nume[nr_elemente];
unde:
- tip_dat precizeaz tipul elementelor vectorului;
- nume este identificatorul vectorului;
- nr_elemente este o constant ntreag care reprezint numrul de
elemente ale vectorului.
nume[0]

nume[1]

nume[2]

nume[3]

nume[n-2] nume[n-1]

...
Fiecare element este indicat prin locul pe care l ocup n cadrul
vectorului. Poziiile elementelor n vector sunt numerotate succesiv
ncepnd cu 0.

Tablouri unidimensionale
Exemple
1. Se declar un vector a cu 10 elemente de tip int:
int a[10];
2. Se declar un vector x cu 5 elemente de tip float:
float x[5];

3. Se declar un vector c cu 8 elemente de tip char:


char c[8];
4. Iniializarea elementelor unui vector la declarare:
int v[]={21, 4, 361, 55};
5. Declararea unei constante ntregi care va fi folosit la declararea
vectorului:
const int NR_ELEMENTE=50;
int v[NR_ELEMENTE];

Tablouri unidimensionale
Referirea la un element al vectorului se face prin construcia:
nume[indice]
unde:
- nume este identificatorul vectorului;
- indice este numrul de ordine al elementului n cadrul vectorului.
Exemplu
int v[4];
V[0]
18

V[1]
-4

V[2]
133

V[3]
75

18
0

-4
1

133
2

75
3

sau
v

Tablouri unidimensionale
Citire vector
-

se citete mai nti numrul de elemente ale vectorului;


se citesc pe rnd, unul cte unul elementele vectorului;
cout<<Numarul de elemente:;
cin>>n;
for(i=1;i<=n;i++)
{
cout<<v[<<i<<]=;
cin>>v[i];
}

10

Tablouri unidimensionale
Afiare vector
-

se realizeaz afind pe rnd elementele vectorului;

for(i=1;i<=n;i++)
cout<<v[i]<< ;

11

4. Tablouri bidimensionale
Tablouri bidimensionale (matrici)
Un tablou bidimensional (matrice) este un tablou cu elemente de acelai
tip, dispuse pe linii i coloane. Fiecare element al matricii se afl pe o
anumit linie i pe o anumit coloan.

12

Tablouri bidimensionale
Considerm o matrice notat a cu m linii i n coloane:
0

n-1
0
1

a=

- m numrul de linii
- n numrul de coloane
- i indicele liniei
- j indicele coloanei

m-1

coloana a 2-a

a[0][0]

a[0][1]

a[0][2]

a[0][n-1]

a[1][0]

a[1][1]

a[1][2]

a[1][n-1]

a[2][0]

a[2][1]

a[2][2]

a[2][n-1]

a[m-1][0] a[m-1][1] a[m-1][2]

linia a 3-a

a[m-1][n-1]

13

Tablouri bidimensionale
Declarare matrice
Sintaxa:
tip_dat nume[nr_1][nr_2];
unde:
- tip_dat precizeaz tipul elementelor matricei;
- nume este identificatorul matricei:
- nr_1 i nr_2 dou constante ntregi care specific numrul de
elemente ale matricei pentru fiecare dimensiune, astfel:
- nr_1 numrul de linii;
- nr_2 numrul de coloane.

14

Tablouri bidimensionale
Exemple
1. Se declar o matrice a cu 100 elemente de tip int:
int a[10][10];

2. Se declar o matrice x cu 40 elemente de tip float:


float x[5][8];
3. Se declar o matrice c cu 8 elemente de tip char:
char c[4][2];
4. Iniializarea elementelor unei matrici la declarare:
int a[2][4]={1,2,3,4,5,6,7,8};
5. Declararea unei constante ntregi care va fi folosit la declararea
matricii:
const int NR_ELEMENTE=50;
int x[NR_ELEMENTE][NR_ELEMENTE];

15

Tablouri bidimensionale
Referirea la un element al matricei se face prin construcia:
nume[indice_1][indice_2]
sau
nume[indice_2][indice_1]
unde:
- nume este identificatorul matricei;
- indice_1 este numrul liniei pe care se afl elementul n matrice;
- indice_2 este numrul coloanei pe care se afl elementul n
matricei.

16

Tablouri bidimensionale

Matrice ptratic
n cazul n care numrul de linii este identic cu numrul de coloane,
matricea se numete ptratic.

Exemplu
n=4
int a[5][5];
n - numrul de linii i de coloane
nxn numrul de elemente ale matricei

a=

17

Tablouri bidimensionale
Citire matrice
-

se citesc mai nti numrul de linii i numrul de coloane ale matricei;


se citesc pe rnd, unul cte unul elementele matricei, de la stnga la
dreapta i de sus n jos:
cout<<Numarul de linii:;
cin>>m;
cout<<Numarul de coloane:;
cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cout<<a[<<i<<][<<j<<]=;
cin>>a[i][j];
}

18

Tablouri bidimensionale
Afiare matrice
-

se realizeaz afind pe rnd elementele matricei, linie cu linie;

for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<< ;
cout<<endl;
}

19

Tablouri bidimensionale
Diagonalele matricei
n cazul unei matrici ptratice, se pot prelucra elementele matricei n
funcie de diagonalele acesteia.

diagonala secundar

diagonala principal

20

Tablouri bidimensionale
Parcurgerea elementelor unei matrici n funcie de diagonale

i<j
i=j
i>j

j<n-i+1
j=n-i+1
j>n-i+1

Observaie: i[1,n], j[1,n]

21

5. Aplicaii
Fie de lucru
Aplicaii tablouri unidimensionale (vectori)
Aplicaii tablouri bidimensionale (matrici)

22

6. Bibliografie i webografie
1. Miloescu Mariana, Informatic. Manual pentru clasa a IX-a, Editura
Didactic i Pedagogic, Bucureti, 2004
2. Munteanu Florin, Programarea calculatoarelor. Manual pentru licee de
informatic clasele X-XII, Editura Didactic i Pedagogic, Bucureti,
1994
3. Logoftu Doina, Bazele programrii n C++, Editura Polirom, Iai, 2006
4. Popescu C., Culegere de probleme de informatic, Editura DonarisInfo, Sibiu, 2002
5. Ministerul Educaiei, Cercetrii i Tineretului, Centrul Naional pentru
Curriculum i Evaluare n nvmntul Preuniversitar, Proba scris la
informatic. Examenul de bacalaureat Variante (1-100) , Bucureti
2008
6. http://en.wikipedia.org/wiki/Vector_(C%2B%2B)
7. http://www.tutorialeprogramare.ro/Tutorial%20C.html
8. http://ro.wikipedia.org/wiki/Matrice_(matematic%C4%83)

23