Mi egy tömb

Array - komplex (összetett strukturált) adattípus, amelyet az jellemez, a következők szerint:

· A tömb elemek azonos típusú, szemben a struktúrák, így minden egyes eleme a tömb foglal azonos mennyiségű memóriát;

· Array található RAM, ahelyett, hogy a külső eszköz, például fájlok (2. nap);

· Array elemek foglalnak szomszédos sejtekben, ezzel szemben például a listák (2. nap).

Hozzáférés a tömb elemeit egy C ++ történik kétféleképpen.

Először is, segítségével a sorszámot az elem a tömb, amely az úgynevezett index. jellemző többféle programozási nyelvek és tartják az első félévben. Ez egyszerűbb és ismernie, hogy azok, akik tanulmányozták a nyelvet Pascal. B, köztük egy állandó vagy változó lehet használni, vagy a kifejezés egy típusú kompatibilis vele, mint egy index. Az index nem lehet használni, mint egy kifejezés valódi típusát.

A tömbök egy vagy több dimenzióban. Ebben a részben figyelembe vesszük a egydimenziós tömb, ami néha olyan vektor, ami azt jelenti, hogy egy vektor n-dimenziós térben. Munka kétdimenziós tömbök (mátrixok) tartják a fejezetben. 5. Három vagy több dimenzió a gyakorlatban ritkán használják, mert az ilyen tömbök nagy részét elfoglalják RAM mennyisége.

Az alábbiakban a „array” alatt azt értjük, egydimenziós tömbben.

Az idő (fázis), amikor memóriát a tömb, kétféle őket. Memória a dinamikus tömb elkülönített futási időt, és ha a tömb nem szükséges, a memória is megjelent neki. Az ilyen tömbök tartják a második félévben.

Az egydimenziós tömb rögzített méretét (ez egy statikus) nyilvánították általános formában az alábbiak szerint:

Itt a típus - milyen típusú a tömb elemeinek. Kezdetben, figyelembe vesszük az egyszerű típusok (int, float, char), de akkor a komplex, mint például a szerkezet. A nevével szabályai azonosítók. Minden elem a tömb ugyanaz a neve, az egyetlen változás kódot vagy cikkszám. N - a dimenzió (vagy mérete) a tömb, mint egy egész konstans vagy konstans kifejezésnek. Ez az érték határozza meg a sejtek számát RAM számára fenntartott a tömb. Például:

úszó egy [10]; vagy const n = 10; úszó egy [n];

Ellentétben dinamikus tömb statikus fordítási idejű memória van fenntartva, hogy befogadja a N számú típusú (10 valós számok). Egy tömb memória szükséges mennyiség K * N bájt (4 * 10), ahol k - szükséges bájtok számát befogadni az egy ilyen típusú elemből (egy float típusú). Ez a memória megmarad a program időtartama, vagy inkább, egy funkció vagy blokk, amely leírja a tömbben. Szoftver szükséges memória kapacitása segítségével határozzuk meg a sizeof művelet az alábbiak szerint:

M = sizeof (típus) * N; vagy M = sizeof (név); vagy M = sizeof neve;

ahol M - egész változó, amely meghatározza a méret a tömb bájtban. Írja feltétlenül zárójelbe, és a nevét is szögletes zárójelek nélkül. A következő program megjeleníti kétszer annyi 40.

úszó egy [10]; int M1, M2;

M1 = sizeof (float) * 10; // de M1 = sizeof úszó * 10 - Hiba!

M2 = sizeof (A); // vagy M2 = sizeof A;

Sok modern programozási rendszerek, beleértve a C ++, a számozása a tömb elemeinek kezdődik 0. Ekkor a A [n-1] - az utolsó elem a tömb. Ez magában foglalja a mutatók, ha foglalkoznak tömbök (lásd. A 2. nap). Ezért, ebben a példában, a index értéke 0 és 9 között, a befogadó, azaz, az index az utolsó eleme a tömb eggyel kevesebb, mint a dimenzió. Bejelentette 10 tömb elemek azonosítása a következőképpen: A [0], A [1], A [2], ..., A [9]. A C ++, nincs ellenőrzés tömb határokat. Lehetőség van, hogy menjen annak határain kívül, és írjuk az értéket egy változó, vagy akár a programkódot. Az ilyen szabályozás kell vigyázni a programozó.

Ha statikus tömbök problémák adódhatnak, ha a tömb méretét előre, nem tudjuk. Ebben az esetben mi egy tömböt a maximális mérete általában ismert. Az igazi dimenzióját, és további felhasználásra, például a ciklusok, és más célokra:

const nmax = 100; float X [nmax];

int n; cout<<”Input the size of array ”; cin>> N;

/ * D alshoy dolgozik n (inkább, mint a nmax) a tömb elemeinek, például, azok bevezetése. * /

A (int i = 0; i

// Ez a vonal együtt lesüllyeszthető fogszabályozó.

Ez a módszer egyszerűbb, de hatástalan memóriafoglalási szempontból a „könyvek” több memóriát, mint a tényleges használat. Ezekben az esetekben a szakmailag alkalmazott hatékonyabb dinamikus tömböket (lásd. A 2. nap).

6.2. Meghatározására szolgáló módszereket tömbök

· Adja meg a tömb elemeinek a képernyőn (lásd. Fent), vagy egy előkészített fájlt (2. félév).

ahol a merevítők úgy vannak rögzítve megfelelő típus állandók, vesszővel elválasztva. Például:

Itt, ha a lista kevesebb, mint N értékek, a hiányzó elemek a tömb nulla lesz. Ezzel szemben, ha meg több mint N értékek „a fordító nem tetszik.”

Egy sor karakter (string) nélkül explicit használata mutatókat lehet nyilvánítani, és inicializálni különböző módon. Megadhat egy elég nagy méretű ahhoz, hogy befogadja a szöveg és a sorvége karaktert ( „\ 0”). Ez a szimbólum egyértelműen meg kell írni a végén a listán, például:

A második módszer egyszerűbb és kényelmesebb: char T [11] = „matematikai”; Ebben az esetben a null karaktert adunk a sor végére automatikusan.

Továbbá, mivel a numerikus és a karakter tömbök megadhat dimenzió. Ez fogja meghatározni számától függően a kimutatott tételek vagy sorban hosszát. Például, int V [] =; kijelenti és inicializálja egész szám tömb öt elem, és a
shar S [] = "MMF"; - egy sor négy karakter hozzáadott új sor.

Ez a módszer a meghatározó a tömb alkalmas hibakeresés, mert nem kell időt tölteni a több bemeneti elemeiről. Amikor a vizsgálat elég változtatni néhány elemet a tömb.

· Néhány, de nem az összes, a feladatok tömb lehet meghatározni egy véletlenszám-generátor:

const n = 5; int Y [n]; randomize ();

randomize () függvény használata javasolt, hogy a tömb volt „több alkalmi”. Ellenkező esetben a tömb lehet ugyanaz, mint volt az előző a program végrehajtását. Paraméter véletlenszerű funkció (100 mi példánkban) azt jelenti, hogy tömb számok közötti egész számok 0-tól 99 befogadó. Ha szükséges, hogy ne csak a számos pozitív, lehet rögzíteni, például a: Y [j] = random (100) -20; Ezután a szám lesz az intervallum 20-79, azaz pozitív szám lesz valószínűségszámítás tovább.

Ha szükséges, hogy a valós számok lehet írni egy ciklusban, mint például: A [i] = random (5) /10.-0.25; Ebben az esetben a tömb nyilvánították float, és állandó, 10 írandó mindig a „jelet.”, Vagyis a valós szám. Ellenkező esetben, az összes ugyanazt a számot kapunk (-0.25), mint a hasadási bármely egész számra kevesebb, mint 5, értéke 10 fog eredményezni egész része, azaz a nulla.

· Egy tömb lehet alakítani egy szabályt. például:

A (int j = 0; j

Exercise. Hogyan működik ez a szoftver?

Kapcsolódó cikkek