Kihagyás

2.13. A tömb

Egydimenziós tömbök (vektorok)

A tömb olyan adatszerkezet, amelynek elemei azonos típusúak lehetnek. A tömb elemeire a tömb nevével és az elem sorszámával hivatkozhatunk. A C# programnyelvben szögletes zárójelek közé kell írni az elem sorszámát, és mindig 0-tól kezdődik az elemek sorszámozása! Így a legutolsó elem sorszáma mindig az elemek száma - 1 lesz.

A tömb deklarációja:

típus [ ] tömbnév = new típus [elemszám];

Pl.:

int [ ] a = new int [6];

A tömb elemei nem csak egész típusúak lehetnek, hanem string, double, long stb. is.

18. feladat

Állítsunk elő 20 egész számot a [-50, 20] intervallumból és írjuk ki a képernyőre 2 sorba! Írjuk ki a pozitív páros számokat! Ha ilyen nincs, akkor írjuk ki, hogy „A számok között nincs pozitív páros szám”! (Név: Tomb1)

Megoldás:

static void Main(string[] args)
{
    int[] tomb = new int[20];
    Random vsz = new Random();
    int db = 0;

    Console.WriteLine("A 20 szám:");
    for (int i = 0; i < 20; i++)
    {
        tomb[i] = vsz.Next(-50, 21);
        Console.Write("{0,4} ", tomb[i]);

        // A 10. elem kiírása után (aminek az indexe 9) új sort kezdünk
        if (i == 9) 
        {
            Console.WriteLine(); 
        }
    }

    Console.WriteLine("\n\nPozitív páros számok:");
    for (int i = 0; i < 20; i++)
    {
        if (tomb[i] > 0 && tomb[i] % 2 == 0)
        {
            Console.Write("{0} ", tomb[i]);
            db++;
        }
    }

    Console.WriteLine();
    if (db == 0)
    {
        Console.WriteLine("A számok között nincs pozitív páros szám!");
    }

    Console.ReadKey();
}


Két- vagy többdimenziós tömbök

Az egydimenziós tömbök (vektorok) mellett kétdimenziós tömböt (táblázatok) is használhatunk.

Kétdimenziós tömb deklarációja:

int [ , ] egeszTomb = new int [5, 6];
// vagy
string [ , ] szoveg = new string [12, 8];

Háromdimenziós tömb deklarációja:

double [ , , ] tomb3d = new double [5, 6, 9];

További dimenziók használata a fentiek alapján történik: a szögletes zárójelen belül vesszőkkel választjuk el a dimenziók számát.


Gyakorló feladatok

  1. Adott egy 10 elemű számsorozat. Rendezzük a számokat növekvő sorrendbe, majd kérjünk be egyenként további számokat, és döntsük el róluk, megtalálhatóak-e az eredeti 10 szám között! Amennyiben van ilyen szám, mondja meg, hogy hányadik, különben írja ki, hogy nincs. Az új számokat addig kérje be, míg egymás után kétszer 0-át adunk meg.
  2. Az iskolában egyéni és összetett versenyt tartottak. A versenyben összesen 20 tanuló vett részt. A versenyek száma 8. Ismerjük versenyenként a diák nevét és pontszámát. Összetett versenybe csak az indulhat, aki az összes egyéni versenyben indult, és elérte a versenyenként megadott minimális pontszámot.
    • a) Adjuk meg az egyéni versenyek rangsorát!
    • b) Adjuk meg az összetett versenyben értékelendő tanulók számát!
    • c) Adjuk meg az összetett versenyben értékelendő tanulók nevét!
    • d) Adjuk meg az összetett verseny rangsorát!
    • e) Adjuk meg versenyenként a tanulók névsorát!
    • f) Adjuk meg azok nevét, akik csak 1 versenyen indultak!
    • g) Adjuk meg azon tanulók névsorát, akik valamilyen versenyen indultak és elérték a versenyenkénti minimális pontszámot!
    • h) Adjuk meg azon tanulók névsorát, akik valamilyen versenyen indultak és nem érték el a versenyenkénti minimális pontszámot!
    • i) Adjuk meg a versenyenkénti első 3 helyezettet!