Ugrás a fő tartalomhoz

C# tömbök és random számok

Tömbök használata és működése

A tömbök fix méretű, indexelhető adatszerkezetek. Az indexelés 0-tól indul, tehát az első elem indexe 0, az utolsóé pedig a tömb hossza - 1.

Miért használjunk tömböket?

  • Ha sok azonos típusú adatot kell kezelni, és azokat index alapján szeretnénk elérni.
  • Ha ciklusokkal szeretnénk végighaladni az adatokon.

Memóriakezelés

A tömbök a memóriában egymás mellett helyezkednek el, így gyorsan elérhetők az elemek. Azonban a méretük futás közben nem változtatható.

Egydimenziós tömb létrehozása

Egydimenziós tömb esetén az elemek egy sorban helyezkednek el. A tömb minden eleme azonos típusú.

int[] numbers = new int[5]; // 5 elemű tömb, alapértelmezett értékekkel (0)
numbers[0] = 10;
numbers[1] = 20;

Console.WriteLine(numbers[0]); // 10

Tömb inicializálása értékekkel

Tömböt létrehozhatunk úgy is, hogy azonnal megadjuk az elemeket.

string[] fruits = { "alma", "banán", "cseresznye" };

foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}

Tömb bejárása for ciklussal

A tömb elemein végigmehetünk ciklussal, az indexek segítségével. Ez lehetővé teszi, hogy minden elemet elérjünk.

int[] nums = { 1, 2, 3, 4, 5 };

for (int i = 0; i < nums.Length; i++)
{
Console.WriteLine($"Index {i}, érték: {nums[i]}");
}

Kétdimenziós tömb (mátrix)

Kétdimenziós tömbök (mátrixok) esetén az elemek sorokban és oszlopokban helyezkednek el.

int[,] matrix = new int[2, 3]
{
{1, 2, 3},
{4, 5, 6}
};

Console.WriteLine(matrix[1, 2]); // 6

Tömb tulajdonságok és metódusok

A tömböknek vannak beépített tulajdonságaik (pl. Length), illetve az Array osztály számos hasznos metódust biztosít (pl. rendezés, megfordítás).

int[] arr = { 5, 2, 8, 1 };

Console.WriteLine(arr.Length); // elemszám: 4

Array.Sort(arr); // rendezés növekvő sorrendben
Array.Reverse(arr); // megfordítás

Véletlenszám generálása és alkalmazása

Sok programban szükség van véletlenszerű adatokra (pl. játékok, szimulációk, tesztadatok). A C# Random osztálya lehetővé teszi véletlenszámok generálását különböző tartományokban.

Matematikai háttér

A számítógépek valójában nem tudnak valódi véletlenszámokat előállítani, hanem ún. pszeudo-véletlenszámokat generálnak algoritmusok segítségével. Ezek a számok elég "véletlenszerűnek" tűnnek a legtöbb alkalmazás számára.

Random osztály használata

Random rnd = new Random();

int num1 = rnd.Next(1, 11); // 1 és 10 közötti egész szám
double num2 = rnd.NextDouble(); // [0.0, 1.0) intervallumban lebegőpontos szám

Console.WriteLine(num1);
Console.WriteLine(num2);

Véletlenszámok tömb feltöltésére példa

Gyakori feladat, hogy egy tömböt véletlenszámokkal töltsünk fel. Ez jól kombinálható a ciklusok és tömbök ismeretével.

Random rnd = new Random();
int[] randomNumbers = new int[5];

for (int i = 0; i < randomNumbers.Length; i++)
{
randomNumbers[i] = rnd.Next(100); // 0-99 közötti szám
}

foreach (int n in randomNumbers)
{
Console.WriteLine(n);
}

Feladatok

  1. Készíts egy programot, amely létrehoz egy 10 elemű egész szám tömböt, és feltölti azt 10-től 50-ig terjedő véletlenszámokkal. Ezután írd ki az összes számot a tömbből, ami kisebb 25-nél.

  2. Készíts egy programot, amely létrehoz egy 30 elemű valós szám tömböt, és feltölti azt 0-től 1-ig terjedő véletlenszámokkal. Ezután add össze a számok értékét és írd ki az eredményt.

  3. Készíts egy programot, amely létrehoz egy 20 elemű egész szám tömböt, és feltölti azt 30-től 300-ig terjedő véletlenszámokkal. Ezután írd ki az összes páros számot a tömbből.