Miután a változót megbeszéltük, lássuk a tömböt. Nagyon érdekes dolog.
Gyakran előfordul, hogy sok hasonló célú adattal van dolgunk. Például egy valutaátszámító programban (mondjuk) százféle valutának van neve és árfolyama. Egy menü kirajzolásához tárolni kell a menüpontok szövegét. Egy sakkprogramban a figurák helyét. Egy levelezőprogramban a címzettek névsorát. És így tovább. Az ilyen adatsorokra az a jellemző, hogy vannak műveletek, amiket a sorozat minden egyes elemén végre kell hajtani, és vannak olyan műveletek, amiket csak egyes elemeken. Vegyük példának a sakkprogramot. Amikor meg kell rajzolni az állást, akkor az összes figurával foglalkozni kell; amikor a lehetséges lépéseket kalkuláljuk, akkor csak a saját figurákkal; amikor pedig egy lépés részleteit adminisztráljuk, akkor a lépő (és ha van, a leütött) figurával.
A programozó ilyenkor használ tömböt. A tömb nem más, mint egy indexelt változó: sok változó azonos névvel és sorszámmal. A korábbi hasonlattal: egy külön fiókos szekrény, aminek neve van, a fiókjainak pedig sorszáma. Például a sakkprogramban lehet egy babu nevű tömbünk, amely a bábuk hollétét tartalmazza. A tömb indexe a bábu sorszáma, valamilyen kódrendszer szerint, a tartalma pedig a bábu holléte, úgyszintén valamilyen kódolással. Az ilyen dolgokat mindig a program írója dönti el. Ez esetben így léphetünk egy bábuval (BASIC):
babu(10) = 40
Pascal:
babu[10] := 40;
PHP:
$babu[10] = 40;
Mindhárom azt jelenti: tedd a 10-es számú bábut a 40-es számú mezőre. Hogy ez konkrétan melyik bábu és melyik mező, azt a programozó határozza meg, amikor eldönti, hogyan fogja használni ezt a tömböt. Persze nem muszáj ennek a tömbnek numerikusnak lennie, lehet szöveges is:
babu(10) = "a5" babu[10] := 'a5'; $babu[10] = 'a5';
A bábu sorszáma (a tömbindex) BASIC-ben csak szám lehet, de annak nincs akadálya, hogy létrehozzunk egy csomó változót, ilyeneket:
kiraly = 1 vezer = 2 bastya1 = 3 bastya2 = 4
stb. (A változónevek számjegyeket is tartalmazhatnak.) Ezután a
babu(kiraly) = "e1"
utasítás úgy teszi a királyt induló pozíciójába, hogy közben a programozó számára is rögtön, ránézésre érthető, hogy mi történik. Nagyon fontos, hogy a programszöveget minél érthetőbbé tegyük a saját magunk számára. A gépnek mindegy, hogy a bábuk helyét tartalmazó tömb neve babu vagy mcbrlh. Nekünk, embereknek nem mindegy.