Extras din curs
Un tablou este o colecţie de variabilede acelaşi tip, apelate cu acelaşi nume. Tablourile sunt plasate într-o zonă de memorie contiguă. Accesul la un element al tabloului se face cu ajutorul unor indici.
Tablouri unidimensionale
Forma generală de declarare a tablourilor unidimensionale (şirurilor) este următoarea:
tip_element nume_tablou[număr_elemente];
unde tip_element este un tip oarecare şi reprezintă tipul elementelor tabloului, nume_tablou este un identificator, iar număr_elemente este o expresie constantă şi pozitivă ce precizează numărul de elemente ale tabloului.
De exemplu, în secvenţa:
int k[50];
char c[8];
float a[100];
se declară tablourile c , k şi a cu, respectiv, 50 de elemente întregi, 8 elemente de tip caracter şi 100 elemente de tip float.
Pentru referirea la un element se foloseşte o expresie cu operatorul de indexare [ ], precizând numele tabloului şi indexul (poziţia elementului în tablou):
nume_tablou[index]
Indexul variază între 0, pentru primul element a tabloului şi număr_elemente-1, pentru ultimul element.
Dimensiunea zonei de memorie care trebuie alocată tabloului poate fi calculată cu relaţia:
dimensiune_tablou = sizeof(tip_element)*număr_elemente
Tablourile unidimensionale sunt liste de informaţii de acelaşi tip care sunt plasate în zone de memorie contiguă, în ordinea indicilor. De exemplu, dacă tabloul c cu 8 elemente de tip caracter, declarat mai sus, începe cu locaţia de memorie 1100, în memorie acesta apare astfel:
Element c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7]
Adresă 1100 1101 1102 1103 1104 1105 1106 1107
Observaţie: Limbajul C nu controlează limitele unui tablou. Se pot depăşi ambele margini, distrugând u-se alte date sau cod de program, fără ca să se semnaleze eroare.
Aplicaţie
Programul următor determină minimul dintre termenii pozitivi ai unui şir şi maximul dintre termenii negativi ai aceluiaşi şir.
/* MAX numere negative MIN numere pozitive */
#include <stdio.h>
#include <conio.h>
void main()
{
char i,n,poz,neg;
char min,max,a[50];
clrscr();
printf("n=");scanf("%i",&n);
for (i=1;i<=n;++i)
{
printf("A(%i)=",i);
scanf("%d",&a[i]);
}
poz=neg=0;
for (i=1;i<=n;++i)
{
if (a[i]>0) if (poz==0){
min=a[i];
poz=1;
}
else if (min>a[i]) min=a[i];
if (a[i]<0) if (neg==0){
max=a[i];
neg=1;
}
else if (max<a[i]) max=a[i];
}
if (poz) printf("MIN poz=%dn",min);
if (neg) printf("MAX neg=%dn",max);
if ((poz==0)&&(neg==0)) printf("Toate numerele sunt nulen");
getch();
}
Şiruri de caractere
În C, un şir de caractere este un tablou unidimensional cu elemente de tip caracter. Forma generală de declarare a unui şir de caractere este este următoarea:
char nume_şir[număr_elemente];
Preview document
Conținut arhivă zip
- Tablouri si Siruri de Caractere.doc