Documente Academic
Documente Profesional
Documente Cultură
Complexitate
Ludmila NOVAC
Dr., conf. univ.
Dep. Informatică
Unităţi de conţinut
1. Masive (tablouri) dreptunghiulare. Reprezentarea tablourilor
în MO. Reprezentarea tablourilor „pe linii” şi „pe coloane”.
Accesarea elementelor.
2. Accelerarea accesului la elementele masivelor (tablourilor).
Vectori definitori.
3. Vectori Iliffe. Definirea vectorilor Iliffe şi accesarea
elementelor. Exemplu de clasă generică dotată cu vectori lui
Iliffe.
Tablouri unidimensionale
• Forma generală de declarare a unui tablou unidimensional este:
Tip_elemente nume_tablou[dimensiune];
Unde: - tip_elemente – declară tipul de bază al tabloului, tipul fiecărui element al
tabloului;
- dimensiune - specifică numărul de elemente ale tabloului;
- nume_tablou – este numele dat tabloului.
Exemplu:
• 1) int vect[10]: Se defineşte tabloul vect de 10 elemente de tip int. Pentru
acest tabel se alocă 10*2=20 octeţi. vect este o variabilă a cărui valoare
este adresa primului său element, adică adresa lui vect[0]. Deci vect[0] are
ca valoare, valoarea primului element al tabloului, iar vect are ca valoare
adresa acestui element.
• 2) double dmat[10][50] – este o matrice de 10 linii şi 50 coloane.
Compilatorul rezervă 10*50*8=4000 octeţi. La elementele acestui tablou se
referă prin dmat[0][0], dmat[0][1], ... . dmat are ca valoare adresa
elementului dmat[0][0].
Exemplu de tablou tridimensional
(multidimensional)
Reprezentarea tablourilor în memoria operativă
• În memoria calculatorului masivele (tablourile), aproape întotdeauna, sunt
reflectate în vectori. În continuare vom cerceta numai reprezentarea
tablourilor prin vectori.
• Tabloul unidimensional B cu intervalul indicelui [l, h], l≤h, în mod normal se
reflectă în vector astfel: B[i] → V[i-l], i=l, l+1, …, h,
unde V este adresa de început (de alocare) a vectorului în MO, adică V este
adresa de bază, iar i-l este deplasarea spre elementul cu indicele i.
• Dacă adresa elementului A[i] este &A[i], atunci ea poate fi calculată după
formula:
• &A[i]=A+Sizeof (TipElemente)*i, i=0,..n-1.
După linii:
Metode de acces la elementele unui tablou
În tabelul următor este arătat câte operaţii de tipul ’+’ şi câte operaţii de
tipul ’×’ trebuie de efectuat accesând un element al matricei A:
Accesarea elementului – alocarea
”pe coloane”
În cazul general pentru, o matrice de dimensiune n cu elementele alocate “pe
linii”, cu intervalele indicilor: