Tömb

A HupWiki-ből...

Avagy mátrix vagy dimenzió. Angolul: array.

A 0 dimenziós tömbnek nincs kiterjedése, egy elemet foglal magába. Ilyenek a skalárok.

Az 1 dimenziós tömbnek (avagy vektornak) egy irányú kiterjedése van. Egy index jelzi a tömb mely elemét kezeljük.

A 2 dimenziós tömb, két irányú kiterjedéssel bír és 2 indexszel jelezhetjük mely elemmel dolgozunk.

Az n dimenziós tömbnek... (n természetes szám, 0,1,2,...)

A tömbök a memóriában szekvenciálisan helyezkednek el. Tehát például egy két dimenziós tömb sorai egymás után következnek.

Példa C-ben:

tomb[5][8] = 15;

Ez a "tomb" tömb 6. sorának/oszlopának - nézőpont kérdése - 9. elemét egyenlővé teszi 15-el. Tudnillik a legtöbb programozási nyelvben a tömbök indexelése vagyis számozása 0-tól kezdődik, tehát a nulla az első elem indexe. A memóriában ez az elem, ha feltételezzük például, hogy a mátrix 10*10-es (pl. 10 sor, 10 oszlop - a maximális indexek C-ben 9 és 9), akkor az 5*10+8-adik helyen kezdődő memóriarekeszében foglal majd helyet.

Itt pl. két byte-os egy rekesz.

        0. 1. 2. 3. 4. 5. 6. 7. 8. 9. oszlop
0. sor [XX|XX|XX|XX|XX|XX|XX|XX|XX|XX]
1. sor [XX|XX|XX|XX|XX|XX|XX|XX|XX|XX]
2. sor [XX|XX|XX|XX|XX|XX|XX|XX|XX|XX]
3. sor [XX|XX|XX|XX|XX|XX|XX|XX|XX|XX]
4. sor [XX|XX|XX|XX|XX|XX|XX|XX|XX|XX]
5. sor [XX|XX|XX|XX|XX|XX|XX|XX|OO|EE]
6. sor [EE|EE|EE|EE|EE|EE|EE|EE|EE|EE]
7. sor [EE|EE|EE|EE|EE|EE|EE|EE|EE|EE]
8. sor [EE|EE|EE|EE|EE|EE|EE|EE|EE|EE]
9. sor [EE|EE|EE|EE|EE|EE|EE|EE|EE|EE]

XX - átlépett rekeszek
OO - ide kerül a 15
EE - üres rekeszek

Összesen: 10 sor és 10 oszlop
Átlépett sorok: 5
Átlépett oszlopok: 5*10+8