Curs FR - Unitatea de Invatare 10

  • Upload
    marius

  • View
    35

  • Download
    3

Embed Size (px)

DESCRIPTION

pclp

Citation preview

Unitatea de nvare nr

Tablouri

1Programarea calculatoarelor i limbaje de programare Curs i aplicaii

Unitatea de nvare nr. 10

TABLOURI

CuprinsPagina

Obiectivele unitii de nvare nr. 10210Tablouri210.1Declararea tablourilor210.2.Tablouri unidimensionale310.3Operaii cu vectori410.4Exemple de prelucrri ale datelor organizate n vectori5Test de autoevaluare6Lucrare de verificare unitatea de nvare nr. 106Rspunsuri i comentarii la ntrebrile din testele de autoevaluare8Recapitulare 9Bibliografie unitatea de nvare nr. 109

OBIECTIVELE unitii de nvare nr. 10

Principalele obiective ale Unitii de nvare nr. 10 sunt:

nelegerea organizrii datelor n tablouriFamiliarizarea cu tablourile unidimensionaleModelarea datelor de prelucrat pe principiul utilizrii tablourilorImplementarea cu succes a problemelor care utilizeaz vectori

10. TABLOURIUn tablou este o colecie de date, de acelai tip, situate ntr-o zon de memorie continu (elementele tabloului se afl la adrese succesive). Tablourile sunt variabile compuse (structurate), deoarece grupeaz mai multe elemente. Variabilele tablou au nume, iar tipul tabloului este dat de tipul elementelor sale. Elementele tabloului pot fi referite prin numele tabloului i indicii (numere ntregi) care reprezint poziia elementului n cadrul tabloului.n funcie de numrul indicilor utilizai pentru a referi elementele tabloului, putem ntlni tablouri unidimensionale (vectorii) sau multidimensionale (matricile sunt tablouri bidimensionale).

10.1. DECLARAREA TABLOURILORCa i variabilele simple, variabilele tablou trebuie declarate nainte de utilizare.Modul de declarare:tip nume_tablou [dim_1][dim_2][dim_n] ; unde:tip reprezint tipul elementelor tabloului; dim_1,dim_2,...,dim_n sunt numere ntregi sau expresii constante ntregi (a cror valoare este evaluat la compilare) care reprezint limitele superioare ale indicilor tabloului.

De exemplu, n secvena: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.

10.2. TABLOURI UNIDIMENSIONALE

Tablourile unidimensionale sunt tablouri cu un singur indice (vectori). Dac tabloul conine n elemente, indicii elementelor au valori ntregi din intervalul [0, n-1].La ntlnirea declaraiei unei variabile tablou, compilatorul aloc o zon de memorie continu (dat de produsul dintre dimensiunea maxim i numrul de octei corespunztor tipului tabloului) pentru pstrarea valorilor elementelor sale. Numele tabloului poate fi utilizat n diferite expresii i valoarea lui este chiar adresa de nceput a zonei de memorie care i-a fost alocat. Un element al unui tablou poate fi utilizat ca orice alt variabil (n exemplul urmtor, atribuirea de valori elementelor tabloului vector). Se pot efectua operaii asupra fiecrui element al tabloului, nu asupra ntregului tablou.Exemplu:// Declararea tabloului vectorint vector[6];vector

100101102103104105vector[0]vector[1]vector[2]vector[3]vector[4]vector[5]

// Iniializarea elementelor tablouluivector[0]=100;vector[1]=101;vector[2]=102;vector[3]=103;vector[4]=104;vector[5]=105;Exemplu:double alpha[5], beta[5], gama[5];int i=2;alpha[2*i-1] = 5.78;alpha[0]=2*beta[i]+3.5;gama[i]=alpha[i]+beta[i];//permisgama=alpha+beta;//nepermis

Variabilele tablou pot fi iniializate n momentul declarrii:declaraie_tablou=list_valori;Valorile din lista de valori sunt separate prin virgul, iar ntreaga list este inclus ntre acolade:Exemple:

int vector[6]={100,101,102,103,104,105};vector100101102103104105

[0] [5]

double x=9.8;double a[5]={1.2, 3.5, x, x-1, 7.5};

La declararea unui vector cu iniializarea elementelor sale, numrul maxim de elemente ale tabloului poate fi omis, caz n care compilatorul determin automat mrimea tabloului, n funcie de numrul elementelor iniializate.Exemplu:char tab[ ]={ A, C, D, C};tabAB1C

D

[0] [3]

float data[5]={ 1.2, 2.3, 3.4 };

data1.22.33.4??

[0] [4]Adresa elementului de indice i dintr-un tablou unidimensional poate fi calculat astfel:adresa_elementului_i = adresa_de_baz + i lungime_element

10.3. OPERAII CU VECTORICitirea elementelor unui vector:

double a[100];int n,i;coutn;for (i=0; i