Polia [Arrays] sú veľkou pomocou pre programátora a dovoľujú v jednej premennej uchovať viac informácií.
Čo je pole? Pole je množina údajov uchovaná v jednej premennej, alebo presnejšie množina premenných. Ako príklad si predstavte nasledujúcu situáciu. Pracujete na programe zobrazujúcom obrázky a potrebujete o každom z nich uchovať informáciu (napríklad názov). Samozrejme sa to dá aj nasledovne, nie je to však veľmi účelné, týmto spôsobom totiž uchováte len presný, pri písaní programu určený počet premenných.
string obrazok1 = "Obrázok 1"; string obrazok2 = "Obrázok 2"; string obrazok3 = "Obrázok 3";
Inicializácia poľa
Pole nám dovoľuje využiť väčšiu voľnosť a zároveň tak získame prehľadnejší kód. Pole vytvoríte určením ako klasickú premennú alebo objekt, no pri určení typu použijete hranaté zátvorky [] a ako hodnotu priradíte nový objekt poľa so špecifikovanou veľkosťou (Viac o objektoch neskôr).
string[] obrázky = new string[3];
Týmto kódom vytvoríte pole typu string veľkosti 3. Veľkosť nám označuje koľko údajov sa do pola zmestí – do tohto konkrétneho teda tri premenné typu string. Do takto vytvoreného poľa môžete priradiť hodnoty, opäť pomocou hranatých zátvoriek.
obrazky[0] = "Obrázok 1"; obrazky[1] = "Obrázok 2"; obrazky[2] = "Obrázok 3";
Týmto sme priradili prvú, druhá a tretiu hodnotu pola obrázky. V programovaní sa vždy začína číslom 0, čiže prvá hodnota pola je označená nulou atď.
Pole môžete inicializovať aj s hodnotami, a to tým že po vytvorení nového objektu pola do hranatých zátvoriek zadáte hodnoty.
string[] obrazky = new string[]{"Obrázok 1", "Obrázok 2", "Obrázok 3"};
Pri takejto inicializácií nieje nutné zadávať veľkosť poľa, no je to možné. Aktuálnu veľkosť pola je možné zistiť pomocou člena Length.
int pocet_obrazkov = obrazky.Length;
Pole polí
Polia môžete vytvoriť z každého dátového typu a tým je aj pole samotné. Tým môžete vytvoriť pole polí (Matematicky matica alebo anglicky matrix). To môžete dosiahnuť dvoma spôsobmi. Prví je ten aký by ste očakávali, čiže pridanie ďalších hranatých zátvoriek po prvých.
string[][] obrazky = new string[4][];
Týmto spôsobom vytvoríte pole, ktoré bude obsahovať 4 polia typu string. Je dôležité si pamätať, že tieto podpolia je tiež nutné inicializovať.
obrazky[0] = new obrazky[6]; obrazky[1] = new obrazky[3]; obrazky[2] = new obrazky[8]; obrazky[3] = new obrazky[5];
Takto ste inicializovali každé pole vnútry pola obrazky. K jednotlivým stringom polí sa potom dostanete kódom obrazky[0][3] = "Štvrtý obrázok v prvom poli";
Týmto spôsobom môže mať každé pole inú veľkosť, pokiaľ však chcete, aby malo každé pole rovnakú veľkosť, ide to aj jednoduchšie a to pomocou vytvorenia multidimenzionálného pola. To vytvoríte špecifikovaním počtu dimenzií priamo pri vytváraní pomocou čiarky ako na nasledujúcom príklade.
string[,] obrazky = new obrazky[4,3];
Takto vytvoríte dvojdimenzionálne pole veľkosti 4*3. (Predstavte si tabuľku, ktorá má 4 stĺpce a 3 riadky). K jednotlivým hodnotám pristupujete podobne obrazky[0,2] = "Obrázok v treťom riadku prvého stĺpca.";
.
Enumerácia
Enumerácia [Enumeration] je špeciálny typ poľa, ktorý označujeme kľúčovým slovom enum. Predstavte si ako príklad, kde by ste chceli zistiť aký je deň v týždni. Vytvorili by ste si zoznam premenných typu short a každej priradili hodnotu, ktorú by ste mohli následne použiť.
short pondelok = 1; short utorok = 2; short streda = 3; short stvrtok = 4; short piatok = 5; short sobota = 6; short nedela = 7; short dnes = utorok;
pomocou enumerácie toto môžete dosiahnuť jednoduchšie a šetrnejšie.
enum Den {Pondelok, Utorok, Streda, Stvrtok, Piatok, Sobota, Nedela}; Den dnes = Den.Utorok;
Týmto spôsobom ste vlastne vytvorili nový dátový typ, ktorý môžete používať – meno tohto typu je Den a obsahuje členou Pondelok, Utorok, Streda, Stvrtok, Piatok, Sobota a Nedela, ktoré môžete použiť a priradiť.
K enumeráciam už môžem napísať len jednu vec – pri ich inicializácií je možné priradiť im konkrétne hodnoty – čiže ak preferujete americký štandard, kde je prvý deň v týždni nedeľa, je ľahké upraviť kód na enum Den {Pondelok = 2, Utorok = 3, Streda = 4, Stvrtok = 5, Piatok = 6, Sobota = 7, Nedela = 1};
, pričom nemusíte meniť poradie v enumerácií.
String
Dátový typ string je tiež akési pole. Je preto možné zistiť jeho veľkosť pomocou člena Length alebo jednotlivé znaky pomocou hranatých zátvoriek.
string obrazok = "Obrázok 1"; int dlzka_textu = obrazok.Length; //bude 9 char treti_znak = obrazok[2]; //Bude mať hodnotu 'r'
Myslím že po dnešku už máte pred očami mínové polia a tak tento diel ukončím. Uvidíme sa nabudúce a to pri diely určenému Kontrole prúdu údajov.