Cursuri PCLP 2 PDF [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Tablouri

Unitatea de învăţare nr. 10 TABLOURI

Cuprins

Pagina

Obiectivele unităţii de învăţare nr. 10

2

10

Tablouri

2

10.1

Declararea tablourilor

2

10.2. Tablouri unidimensionale

3

10.3

Operații cu vectori

4

10.4

Exemple de prelucrări ale datelor organizate în vectori

5

Test de autoevaluare

6

Lucrare de verificare – unitatea de învăţare nr. 10

6

Răspunsuri şi comentarii la întrebările din testele de autoevaluare

8

Recapitulare

9

Bibliografie – unitatea de învăţare nr. 10

9

1

Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Tablouri

OBIECTIVELE unităţii de învăţare nr. 10 Principalele obiective ale Unităţii de învăţare nr. 10 sunt:

 Înţelegerea organizării datelor în tablouri  Familiarizarea cu tablourile unidimensionale  Modelarea datelor de prelucrat pe principiul utilizării tablourilor  Implementarea cu succes a problemelor care utilizează vectori

10. TABLOURI Un tablou este o colecţie de date, de acelaşi 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ă poziţia elementului în cadrul tabloului. În funcţie de numărul indicilor utilizaţi pentru a referi elementele tabloului, putem întâlni tablouri unidimensionale (vectorii) sau multidimensionale (matricile sunt tablouri bidimensionale).

10.1. DECLARAREA TABLOURILOR Ca ş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 căror valoare este evaluată la compilare) care reprezintă limitele superioare ale indicilor tabloului.

2

Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Tablouri 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.

10.2. TABLOURI UNIDIMENSIONALE Tablourile unidimensionale sunt tablouri cu un singur indice (vectori). Dacă tabloul conţine n elemente, indicii elementelor au valori întregi din intervalul [0, n-1]. La întâlnirea declaraţiei unei variabile tablou, compilatorul alocă o zonă de memorie continuă (dată de produsul dintre dimensiunea maximă şi numărul de octeţi corespunzător tipului tabloului) pentru păstrarea 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 următor, atribuirea de valori elementelor tabloului vector). Se pot efectua operaţii asupra fiecărui element al tabloului, nu asupra întregului tablou. Exemplu: // Declararea tabloului vector int vector[6]; // Iniţializarea elementelor tabloului vector[0]=100; vector[1]=101; vector[2]=102; vector[3]=103; vector[4]=104; vector[5]=105;

vector 100

vector[0]

101

vector[1]

102

vector[2]

103

vector[3]

104

vector[4]

105

vector[5]

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]; //permis gama=alpha+beta; //nepermis Variabilele tablou pot fi iniţializate în momentul declarării: declaraţie_tablou=listă_valori; 3

Programarea calculatoarelor și limbaje de programare – Curs şi aplicaţii

Tablouri Valorile din lista de valori sunt separate prin virgulă, iar întreaga listă este inclusă între acolade: Exemple: 1. int vector[6]={100,101,102,103,104,105}; vector

100

101

102

103

104

[0]

105

[5]

2. double x=9.8; double a[5]={1.2, 3.5, x, x-1, 7.5}; La declararea unui vector cu iniţializarea elementelor sale, numărul maxim de elemente ale tabloului poate fi omis, caz în care compilatorul determină automat mărimea tabloului, în funcţie de numărul elementelor iniţializate. Exemplu: char tab[ ]={ ’A’, ’C’, ’D’, ’C’}; tab

’A’

[0]

’B’ 1

’C’

’D’

[3]

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

1.2

2.3

3.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. OPERAȚII CU VECTORI a) Citirea elementelor unui vector: double a[100]; int n,i; coutn; for (i=0; i