5 - Mátrix és tömbök tömbje
Többdimenziós tömb / mátrix
-
Egy tömb lehet egy- vagy többdimenziós
-
Példa az egydimenziós tömbre:
string[] napok = {"hetfo", "kedd", "szerda", "csutortok", "pentek", "szombat", "vasarnap"}; -
Kétdimenziós tömb / mátrix
- Mint egy táblázat - több sorból és oszlopból áll
- Minden sora ugyanannyi oszlopból áll
// Inicializálás <típus>[,] <mátrix neve> = { {<első sor első elem>, <első sor második elem>}, {<második sor első elem>, <második sor második elem>}, {<harmadik sor első elem>, <harmadik sor harmadik elem>}}; // Deklarálás értékadás nélkül <típus>[,] <mátrix neve> = new <típus>[<sorok száma>,<oszlopok száma>]; -
Többdimenziós tömb / mátrix
- Hasonlóan a kétdimenzióshoz, a dimenziók számát a
[ ]
közötti vesszők segítségével tudjuk jelezni
- Hasonlóan a kétdimenzióshoz, a dimenziók számát a
Megadott érték lekérése
- Több index alapján
- Szintaxis kétdimenziós mátrixra:
<mátrix neve>[sor index, oszlop index]
int[,] matrix = {{11, 12}, {21, 22}, {31, 32}, {41, 42}};
Console.WriteLine(matrix[0, 1]); // Valasz: 12
Iterálás többdimenziós mátrixon
foreach
ciklussal
foreach (int <elem neve> in <mátrix neve>) { // Ciklusmag }
int[,] matrix = {{11, 12}, {21, 22}, {31, 32}, {41, 42}};
foreach (int elem in matrix) {
Console.WriteLine(elem);
}
- Egymásba ágyazott
for
ciklusokkal <mátrix neve>.Length
helyett<mátrix neve>.GetLenth(<dimenzió száma>)
int[,] matrix = {{11, 12}, {21, 22}, {31, 32}, {41, 42}};
for (int i = 0; i < matrix.GetLength(0); i++) {
for (int j = 0; j < matrix.GetLength(1); j++) {
Console.WriteLine(matrix[i, j]);
}
}
Tömbök tömbje
-
A sorokban nem feltétlen ugyanannyi oszlop található
// Inicializálás <típus>[][] <mátrix neve> = { new <típus>[] {<első sor első elem>}, new <típus>[] {<második sor első elem>, <második sor második elem>}, new <típus>[] {<harmadik sor első elem>, <harmadik sor második elem>, <harmadik sor harmadik elem>}}; // Deklarálás értékadás nélkül - sorok számának megadása <típus>[] <mátrix neve> = new <típus>[<sorok száma>][]; // + // Deklarálás értékadás nélkül - oszlopok számának megadása <mátrix neve>[<sor indexe>] = new <típus>[<oszlopok száma>]; // stb.
Megadott érték lekérése
- Hasonlóan a kétdimenziós mátrixhoz
<tömb neve>[sor index][oszlop index]
int[][] tomb = {
new int[] {11, 12},
new int[] {21, 22, 23, 24},
new int[] {31, 32},
new int[] {41}
};
Console.WriteLine(tomb[0][1]); // Valasz: 12
Iterálás tömbök tömbjén
- Egymásba ágyazott
for
ciklusokkal
int[][] tomb = {
new int[] {11, 12},
new int[] {21, 22, 23, 24},
new int[] {31, 32},
new int[] {41}
};
for (int i = 0; i < tomb.Length; i++) {
for (int j = 0; j < tomb[i].Length; j++) {
Console.WriteLine(tomb[i][j]);
}
}