TABLOURI SI SIRURI
În esenta un tablou este o lista de variabile de acelasi tip. Un tablou de caractere poarta numele de sir. Accesul la un element al tabloului se face cu ajutorul unui indice sau mai a multi indici. Tablourile ocupa în memorie locatii contigue. Tablourile pot avea una sau mai multe dimensiuni. Sirurile, tablouri unidimensionale sunt terminate cu un caracter special, caracterul null (‘�’).
Între tablouri si pointeri exista o legatura strânsa.
Tablouri unidimensionale
Forma generala de declarare a unui tablou unidimensional este:
tip nume_tablou [dimensiune];
unde:
- tip - declara tipul de baza al tabloului, care este tipul fiecarui element al tabloului;
- dimensiune – specifica numarul de elemente ale tabloului;
- nume_tablou - este numele dat tabloului.
De exemplu, pentru a declara un tablou t cu 10 elemente de tip int cu elementele t[0],
t[1] …t[9] vom scrie:
int t[10];
Un element al tabloului este accesat prin indexarea numelui tabloului folosind numarul elementului. Primul element al tabloului are indexul 0. Pentru a indexa un tablou, trebuie specificat numele tabloului urmat de indexul elementului între paranteze drepte.De exemplu al doilea element al tabloului t poate fi accesat prin t[1].
Exemplu. Program pentru a initializa elementele tabloului t cu valori cuprinse între 0 si 9.
# include <stdio.h>
void main (void)
{
int i, t[10];
for (i=0; i<10; ++i)
x[i] = i;
}
Necesarul de memorie pentru memorarea elementelor unui tablou unidimensional este direct proportional cu tipul si dimensiunea sa, total octeti =sizeof(tip) * dimensiune
Elemetele unui tablou sunt memorate într-o zona de memorie contigue în ordinea indicilor.
Limbajul C nu controleaza limitele unui tablou. Astfel se poate depasi ambele “margini” ale unui tablou, se poate scrie valoarea unui element de tablou în locul altor variabile sau peste instructiunile masina ale programului. De aceasta problema este raspunzator cel care scrie programul si nu compilatorul C. De exemplu:
int x[10],i;
for (i = 0; i < =10; i ++) x [i] = i;
determina x sa depaseasca limitele.
Un element de tablou poate sa apara oriunde pot apare variabile simple sau constante, în general în cadrul expresiilor. În C nu este posibil sa copiem direct elementele unui tablou în alt tablou, printr-o instructiune de atribuire de forma:
int x[5], y[5];
y + x; /* nu este posibil */
y=x; /* nu este admis*/
Pentru a realiza acest lucru este necesar sa copiem fiecare element în mod explicit, adica:
int x [5], y[5], i;
for (i = 0; i < 5; ++i)
y[i] = x[i];
sau
for (i =1; i <6; i++)
y[i-1] = x[i-1];
Pentru a citi valorile elementelor unui tablou cu functia scanf, este necesar a se pune operatorul & (de adresa) în fata elementului de tablou. De exemplu pentru a citi elementele tabloului x putem scrie:
for (i = 0; i < 5; ++i){
print f (“ x[%d] =”,i);
scan f (“ %d”, & x[i]);
}
Exemplu. Program ce realizeaza ordonarea unui tablou care are cel mult 50 elemente prin metoda “bulelor”.
# include <stdio.h>
void main (void)
{
int x[50];
int i, j, n, a, k;
print f(“Introduceti numarul elementelor tabloului n<=50”);
scanf(“%d”, &n);
print f(“ n Introduceti elementele tabloului”);
for (i=0; i<n; i++){
printf(“ n x[%d] = “, i);
scanf (“%d”, &x[i]);
}
do {
k = 0;
for (i = 0; i < n-1; i++)
if (x[i] > x[i+1]){
a = x[i];
x[i] = x[i+1];
x[i+1] = a;
k = 1
}
} while (k! = 0);
print f (“Tabloul ordonat: n”);
for (i = 0; i < n: i++)
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.