Upload failed. Maybe wrong permissions?

User Tools

Site Tools




A tömb

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.

»»»»»»