@t[A tömb]~~META:date created = 2007-03-18~~ 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. @blogf[!]