Archív Inet.sk Pôvodný autor: Michal Čižmár
29. 12. 2004 o 00:00 11275x

Programujeme v jazyku C# - Diel 7. - Polia III.

Ako som sľúbil, v tomto článku sa budeme venovať príkazu foreach, ktorý je neznámy pre programátorov C++, ale zato veľmi známy programátorom VisualBasicu. Nakoniec jeden malý test, či ste porozumeli poliam.
Programujeme v jazyku C# - Diel 7.  - Polia III.

Ozaj, aký bol Ježiško (alias Santa Claus)? Ak ste náhodou dostali nejakú dobrú knihu o programovaní tak mi napíšte do diskusie, ako ste s ňou spokojný.

>>Jednoduché vypísanie obsahu vektora

Všimli ste si, že kedykoľvek sme potrebovali len vypísať prvky vo vektore, museli sme to dať do cyklu for. C# prebral od VisualBasic-u príkaz foreach, ktorý má nasledujúcu syntax.

foreach
(typ vypisovaná_premenná in vektor) príkaz.

typ
- akého typu sú prvky vo vektore
vypisovaná_premenná -
budú sa do nej vkladať postupne všetky prvky poľa.
vektor
- jednorozmerné pole, ktorého prvky chceme vypísať.

Dajme si hneď príklad:

Príklad 7.1

using
System; class MainClass
{
  
public static void Main(string[] args)
   {
      int[] vektor = new int[] { 8, 12, 13, 10, 8, 9, 5};

     foreach(int i in vektor) Console.WriteLine(i);
   }
}

>>Aké sú výhody a nevýhody príkazu foreach ?

Výhody:     Nemusíme zisťovať dĺžku vektora.
                Jednoduchý zápis pre vektory.
Nevýhody:  Prvky pola sa nedajú meniť !!!!!
                Pre viacrozmerné polia je zápis neprehľadný.
                Použiteľné len pre nepravidelné  viacrozmerné polia.
                Začína vždy s prvkom s indexom 0.

>> Príkaz foreach pre viacrozmerné nepravidelné polia

Príklad 7.2
using System;

class MainClass
{

 public static void Main(string[] args)
  { int[][] matica = new int[2][] {
                           new int[2] { 5,6},
                          new int[3] { 1,5,3} };
  foreach(int[] riadok in matica)
        foreach(int prvok in riadok)    
             Console.WriteLine(prvok);
  }
}

Toto je už trochu zložitejší príklad. Najprv sa definuje (= deklaruje + naplní hodnotami) nepravidelné pole.

Prvý príkaz foreach prechádza prvkami typu int[], čo sú vlastne riadky matice.

Druhý príkaz foreach využíva riadky z predchádzajúceho foreach a prechádza po jeho jednotlivých prvkoch.

To či budete používať pre vypisovanie prvkov príkaz foreach je len na vás.

>>Malý bonus, len pre odvážnych : -)
V C# je možne deklarovať aj nepravidelné pole zložené z pravidelných polí. Potom deklarácia vyzerá takto :

Príklad 7.3
using System;
class
MainClass
{
public static void Main(string[] args)
{
   
int[,] matica1 = new int[,]  // matica 2x3

                   
{ {5,6,8}, { 8,6,9} };
   
int[,] matica2 = new int[,]  // matica 2x3

                   
{ {8,6,4}, { 1,2,3} };
   
int[,] matica3 = new int[,] // matica 3x3
                
{ {1,2,3}, { 8,2,4}, {2,2,2} };

   
int [][,] vektorMatic1  = new int[2][,]
                       {
matica1, matica2 };
   
int [][,] vektorMatic2 = new int[1][,]
                       {
matica3};

   
int [][][,] superMatica = new int [2][][,] // !!! :-)
                  {
vektorMatic1, vektorMatic2};

// program nema nijaku prakticku funkciu, ide o princip

 
}
}

S takýmito trochu “zložitejšími hračičkami“ sa robia niektoré algoritmy, ktoré sa dosť často vyskytujú pri programovaní hier a hlavne grafiky.
Nám to bude slúžiť iba ako test, či ste doteraz čítali pozorne a či ste pochopili podstatu polí. Skúste sa trochu zamyslieť nad predchádzajúcim príkladom a až potom čítajte ďalej......

Tak čo, je vám to jasné ? Ak nie tu je vysvetlenie :
Najprv sme si vytvorili 3 pravidelné matice, pričom dve sú 2x3a jedna 3x3. Potom sme vytvorili dva jednoduché vektory, ktoré ale obsahujú premenné typu matica (obidva sú vektory aj keď druhý obsahuje len jeden prvok). Tieto dva vektory sú vlastne riadky superMatice. Nakoniec sme vytvorili posledný vektor, ktorý obsahuje prvky typu vektor, ktorého prvý sú matice. :-)) Inak povedané vyskladali sme jednu veľkú maticu pomocou submatíc.

Grafický povedané:


                             


>> Čo bude nabudúce?


V budúcom článku dokončíme sériu o poliach. Bude tam 5 veľmi zaujímavých príkladov, ktoré ukážu skrytú silu jazyka C# v práci s poliami. Odporúčam čítať hlavne programátorom v jazyku C++, veď uvidíte prečo.


Teším sa na diskusiu a e-maily s pripomienkami.


Michal Čižmár

micitn@orangemail.sk

                                   SEE YOU! 


>> Všetky príklady z článku:
www.inet.sk/download/user/Priklad7.1_CyklusForEach.zip
www.inet.sk/download/user/Priklad7.2_ForEachPreNepravidelnePolia.zip
www.inet.sk/download/user/Priklad7.3_MaticaMatic.zip

>> Minulé články
Programujeme v jazyku C# - Diel 6. - Polia II
Programujeme v jazyku C# - Diel 5. Polia I
Programujeme v jazyku C# - Diel 4
Programujeme v jazyku C# - Diel 3
Programujeme v jazyku C# - Diel 2
Programujeme v jazyku C# - Diel 1
Porovnanie C# vs. C++

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies