Documente Academic
Documente Profesional
Documente Cultură
TABLOURI UNIDIMENSIONALE
TABLOURI BIDIMENSIONALE
TABLOURI UNIDIMENSIONALE
Definiie
Declararea unui tablou unidimensional Iniializarea tablourilor
ieire
napoi
DEFINIIE
napoi la cuprins
tip_baz nume_tablou[numr componente]; unde: - tip_baz: precizeaz tipul datelor din tablu; - nume_tablou: precizeaz numele tabloului; - numr componente: precizeaz cte component conine tabloul (dimensiunea). exemplu: int x[20]; - s-a declarat un tablou unidimensional cu numele x - nume_tablou: precizeaz numele tabloului; - numr componente: precizeaz cte component conine tabloul (dimensiunea).
napoi la cuprins
INIIALIZAREA TABLOURILOR
Declaraia unui tablou poate fi urmat de o seven de iniializare. Secvena de iniializare este format dintr-o pereche de acolade ntre care se pun valori ale tipului de baz separate prin virgul.
exemple: float y[ ]={6.1, 7.4e, 8e-2, -3}; - s-a declarat un tablou unidimensional cu numele y; - datele din tablou vor fi de tipul float; - are 4 componente; - dup aceast declaraie: y[0]=6.1; y[1]=7.4e; y[2]=8e-2, y[3]=-3. int z[5]={6, 7, 8};
napoi la cuprins
napoi la cuprins
napoi la cuprins
napoi la cuprins
TABLOURI BIDIMENSIONALE
Definiie
ieire
napoi
DEFINIIE
Tablou bidimensional = succesiune de locaii de memorie recunoscute prin acelai identificator i prin poziia fiecreia n cadrul irului. Poziia este dat printr-o suit de dou numere pozitive (indeci), care reprezint cele dou dimensiuni (linie i coloan). Valorile atribuite elementelor tabloului trebuie s fie de acelai tip. Organizarea unui tablou bidimensional n memorie este de reprezentat n figura de mai jos: Ex. Introducerea unui[0] tablou de 6 linii i 8 coloane (6 x 8) avnd elemente ntregi 23 67 este de forma:
[1] [2] [3] [4] [5]
[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
napoi la cuprins
napoi la cuprins
Obs: Dimensiunile efective ale tabloului introdus de ctre utilizator (m si n) nu trebuie s depeasc dimensiunile cu care a fost declarat tabloul bidimensional. Identificarea zonei de memorie unde va fi reinut tabloul se face cu ajutorul numelui tabloului. Acesta are ca valoare adresa primului element din tablou, tab[i][j]), ceea ce l deosebete de identificatorul folosit pentru variabilele simple care nu reprezint o adres.
napoi la cuprins
AFIAREA MATRICELOR
Ex. S se afieze matricea sub form de tablou rectangular(ca o matrice). Aceasta a fost iniializat anterior direct n cadrul instruciunii de declarare. int tab[5][5]={{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,24}}; printf(\n Elementele vectorului sunt: ); for(i=0; i<5; i++) { for(j=0; j<5; j++) printf(%4d, tab[i][j]); printf(\n); }
napoi la cuprins
Prezentarea algoritmului : - se citesc capetele intervalului n care trebuie s se ncadreze elementele cautate n matrice: xinf i xsup - se citesc dimensiunile matricei: m i n - se citesc elementele matricei: pentru i=0,m-1 execut pentru j=0,n-1 execut citete tab[i][j]; sfrit pentru sfrit pentru - suma = 0; - se parcurge matricea element cu element. Se testeaz dac elementul curent se ncadreaz n intervalul dorit i n caz afirmativ elementul curent se adun la suma calculat anterior pentru i=0,m-1 execut pentru j=0,n-1 execut dac tab[i][j] > xi i tab[i][j] < xf atunci suma = suma + tab[i][j]; sfrit dac sfrit pentru sfrit pentru - afieaz suma Obs. Variabila suma reprezint suma calculat. napoi la cuprins
- ecou - se parcurge matricea iniial element cu element, elementul cu indicele [i][j] devenind elementul cu indicele [j][i] n matricea final pentru i=0,m-1 execut pentru j=0,n-1 execut matr_B[i][j] = matr_A[j][i] sfrit pentru sfrit pentru - se afieaz elementele matricei finale (matricea transpus) pentru i=0,n-1 execut pentru j=0,m-1 execut afieaz matr_B[i][j]; sfrit pentru sfrit pentru
napoi la cuprins