Documente Academic
Documente Profesional
Documente Cultură
INTRODUCERE
Un tablou este o listă de elemente de acelaşi tip plasate succesiv într-o zonă contiguă de
memorie (en. array).
Orice tablou este identificat print-un nume, iar numele este un pointer constant către primul
element din tablou. Tipul elementelor tabloului reprezintă tipul tabloului respectiv
TABLOURI UNIDIMENSIONALE
tip nume_tablou[dimensiune];
tip este un tip de date (predefinit sau definit de utilizator). nume_tablou este un identificator C/
C++. dimensiune este o expresie constantă întreagă şi pozitivă ce specifică numărul de elemente
din tablou
Referirea unui element din tablou:
nume_tablou[index]
nume_tablou este identificatorul dat tabloului (numele variabilei). indexul este, în general, o ex-
presie întreagă şi pozitivă. Primul element are indexul 0, iar ultimul element are indexul (dimensi-
une-1)
TABLOURI MULTIDIMENSIONALE
tip nume_tablou[dimens1][dimens2]...[dimensN];
Tablouri unidimensionale:
tip nume_tablou[dimensiune] = {ec0, ..., ecN-1};
Tablouri multidimensionale:
tip nume[n][m]= {
{ec11,...,ec1m},
{ec21,...,ec2m},...,
{ecn1,...,ecnm}
};
unde: n, m, ecij - sunt expresii constante. Acoladele interioare nu sunt obligatorii, dar ele speci-
fică modul de inițializare pe linii. În cazul în care sunt mai puține elemente în listă față de dimensi-
unea specificată, restul elementelor vor fi inițializate cu 0. În cazul în care sunt mai multe elemente
în listă față de dimensiunea specificată, compilatorul va genera o eroare.
Limbajul C/C++ nu permite returnarea unui întreg tablou de către o funcție. Însă: poate fi retur-
nat un pointer la un tablou, specificând numele tabloului fără index. Dacă se dorește returnarea
unui tablou unidimensional dintr-o funcție, trebuie declarată o funcție care returnează un pointer. C
nu permite returnarea adresei unei variabile locale în afara funcției, așa încât trebuie definită vari-
abila locală ca variabilă statică.
Altă modalitate: alocarea tabloului în mod dinamic și returnarea pointerului obținut în urma
alocării (într-un curs viitor)
EXEMPLE
1. Program ce citeşte elementele unui tablou bidimensional, după care determina suma ele-
mentelor de pe diagonala principală.
int main(void)
{
int i, j, n, sum = 0, tab[MAX][MAX];
printf("\nDimensiunea matricei: ");
scanf("%d", &n);
if (n <= 0) {
printf("\n\tDimensiunea data este negativa !");
return 0;
}//end if
int main(void){
int i, dim;
int x[DIM];
printf("\nIntroduceti dimensiunea tabloului: ");
scanf("%d", &dim);
if (dim > DIM) {
printf("\n Dimensiune prea mare !");
return 0;
}
printf("\n Introduceti elementele tabloului:\n");
for (i = 0; i<dim; i++){
printf("\tx[%d] = ", i);
scanf("%d", &x[i]);
}
printf("\n Valoarea medie este: %.3f\n", valMed(x, dim));
}
int main(void){
int i, dim, val, poz;
int x[DIM];
printf("\nIntroduceti dim tabloului( <= %d): ", DIM);
scanf("%d", &dim);
if (dim > DIM) {
printf("\n Dimensiune prea mare !");
return 0;
}
int main(void)
{
int i, dim, val, poz;
int x[DIM];
printf("\nIntroduceti dimensiunea tabloului: ");
scanf("%d", &dim);
if (dim > DIM) {
printf("\n Dimensiune prea mare !");
return 0;
}