- Množina prvků se stejným datovým typem
- K jednotlivým prvkům pole přistupujeme pomocí indexů
- První prvek pole má index 0, poslední prvek má index n-1
- Deklarací vlastně vytvoříme odkaz
- Pokud chceme vytvořit místo v paměti musíme vytvořit instanci
datovy_typ[] nazev_pole = new datovy_typ[pocet_prvku_pole];
- Počtem může být i proměnná, kterou vypočítáme
String[] predmety = new string[5]{"MAT", "ANJ", "CJL", "FYZ", "TEV"};
Console.WriteLine(predmety[3]); // vypížš "FYZ", protože je to prvek s indexem 3
String[] jmena = {"jan", "jirka", "dan"}; // další možnost inicializace
Byte[] znamky = new byte[4];
znamky[0] = 3;
znamky[1] = 2;
znamky[2] = 4;
znamky[3] = 1;
Console.WriteLine(znamky[1]); // vypíše se druhý prvek pole
String[] zaci = new string[4];
for (int i = 0; i < 4; i++) {
//
}
- Pro procházení se využívá cyklů:
- FOR - musíme znát počet prvků pole
- FOREACH - nemusíme si pamatovat index pole
foreach (int n in numbers) {
Console.WriteLine(n)
}
- Deklaruje iterační proměnnou, která automatický nabývá po průchodu cyklem hodnotu dalšího prvku pole.
- Iterační proměnnou můžeme deklarovat i pomoci var, pak si kompilátor C# odvodí datový typ z typu prvků pole.
- Nechceme procházet celé pole (např. chceme zobrazit každý druhý prvek)
- Chceme procházet pole opačným směrem
- Potřebujeme znát aktuální hodnotu indexu
- Potřebujeme měnit hodnoty pole. Iterační proměnná je jen kopií prvků pole
Int[] nums = {5, 2, 69, 420};
Console.WriteLine(nums.length) // output 4
- Nejčastěji se využívá dvojrozměrné pole.
- Je to vlastně tabulka s určitým počtem řádků a sloupců.
- Z matematického pohledu, můžeme dvojrozměrné pole přirovnat k matici.
datovy_typ[,] nazev = new datovy_typ[x, y];
- x = počet sloupců
- y = počet řádků
- Pole můžeme naplnit bud postupně přiřazováním
n[0, 0] = x;
n[0, 1] = y;
- nebo použijeme cyklus FOR
- Pokud chceme zobrazit pouze určitý prvek pole, využijeme příkaz
Console.WriteLine();
- Pokud chceme vypsat všechny prvky pole, využijeme cyklus FOR
- U dvojrozměrného pole použijeme 2 cykly FOR vnější (řádky) a vnitřní (sloupce)
- Můžeme používat statické metody třídy ARRAY nebo instanční metody.
- Slouží pro setřídění pole vzestupně.
// statické metody na poli třída Array
// Sort() - seřazení pole vzestupně
Array.Sort(nums);
- Zobrazí pole od konce, pokud metodu aplikujeme na seřazené pole dostaneme pole seřazené sestupně
// seřazení sestupně nejdřív seřadím vzestupně a pak po
// metodu Reverse() zobrazí pole od konce
Array.Reverse(nums);
- Najde první pozici (číslo indexu) hledaného prvku pole, pokud nenajde nic, vrátí hodnotu -1.
// pozice zadaného prvku INDEXOF
// pokud nenajde hledaný prvek do pozice se zapíše -1