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:
Háromdimenziós tömb deklarációja:
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
- 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.
- 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!