Archív Inet.sk Pôvodný autor: Michal Čižmár
05. 01. 2005 o 00:00 9969x

Programujeme v jazyku C# - Diel 8. - Polia IV.

Tento článok vás určite presvedčí, že C# je mocný nástroj na programovanie. Je tu ešte viac príkladov. V tejto sérii (tetralógií) sa snažím všeobecne objasniť podstatu práce s poliami, takže tieto princípy môžete uplatniť aj v iných programovacích jazykoch.
Programujeme v jazyku C# - Diel 8.  - Polia IV.

Na začiatok vám chcem zaželať veľa úspechov v roku 2005 a čo najmenej chýb vo vlastných programoch :-). Dúfam, že zas každú stredu strávime trochou programovania v modernom programovacom jazyku C#.

V tomto už naozaj poslednom dieli o poliach sa budeme zaoberať veľmi zaujímavými možnosťami práce s poliami v C#. Predpokladám, že predchádzajúce články máte nielen prečítané ale ste aj všetkému porozumeli. Dnes som sa rozhodol napísať viac príkladov ako vysvetľujúceho textu.

>>Utriedenie jednorozmerného pola jedným príkazom

Príklad 7.1

using System;

class MainClass
{
  
public static void Main(string[] args)
   {
int[] vektor = new int[]{ 1,5,6,7,2,6};
     
string[] slova = new string[] { "mas", "ako",
                                     
"sa","Ahoj"};
      
Array.Sort(vektor);
      
Array.Sort(slova);

      
foreach(int prvok in vektor) Console.WriteLine(prvok);
      
foreach(string slovo in slova) Console.WriteLine(slovo);
    }
}

Všimnite si, že funkcia Array.Sort() nie je nikde inde doprogramovaná. Je implementovaná už v základnej knižnici System.

>>Hľadanie prvku v jednorozmernom poli - Prvá možnosť

Príklad 7.2

using System;

class MainClass
{
public static void Main(string[] args)
{
   
int[] vektor = new int[] { 321, 15, -87, 22};
   
int index;
   
   
index = Array.IndexOf(vektor,15);

     Console.WriteLine(" Prvok 15 je na pozicii {0}",index);
   }
}

Pozor na to, že indexovanie pola začína od nuly. Ale čo ak sa prvok v poli nenachádza? Vtedy program nespadne ale funkcia IndeOf() vráti hodnotu -1. Radím vyskúšať si to. Ak sa prvok s hľadanou hodnotou vyskytuje viac krát, tak sa vráti index prvku s najnižším indexom.


>> Hľadanie prvku v jednorozmernom poli - Druhá možnosť

Niekedy sa vám môže stať, že v poli sa nachádzajú tisíce prvokov. To môže nastať napríklad keď programujete databázu. Ak ide o veľmi vyťaženú databázu tak určite chcete aby vyhľadanie určitého prvku bolo čo najrýchlejšie. Vtedy je dobre databázu utriediť po vložení jedného alebo skupiny nových prvokov (napr. o polnoci, keď databázu používa málo ľudí).
Vyhľadávanie v utriedenom poli je rýchlejšie ale nepoužiteľné ak sa pozície prvkov v poli nesmú meniť (teda triediť), logické, nie?

Príklad 7.3


using
System; class MainClass
{
public static void Main(string[] args)
{
   
int[] vektor = new int[] { 15, -5, 56, 150, -200};
   
int index;
   
   
Array.Sort(vektor);
   
   
index =Array.BinarySearch(vektor,15);
        
   
Console.WriteLine(" Prvok 15 je na pozicii {0}",index);
  }
}

Ak použijete funkciu BinarySearch() na neutriedené pole, tak namiesto indexu vráti hodnotu
-1.


>> Obrátenie poriadia prvkov vo vektore

môžete využiť, keď chcete reverzné zotriedenie poľa.


Príklad 7.4

using System;

class MainClass
{
 
public static void Main(string[] args) { int[] vektor = new int[] {5, -12, 36, 2};
   
Array.Sort(vektor);
   
Array.Reverse(vektor);

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

>>Kopírovanie polí
Príklad je dôkladne okomentovaný, takže začnite s ním.

Príklad 7.5

using System;

class MainClass
{
 
public static void Main(string[] args)
{
  
int[] V1 = new int[] { 5, 8, 9};//original

  
int[] V2 = new int[3]; // toto bude kopia


  
V2=V1;  // Chybne skopirujem pole

  
V2[2]=222; // Zmenim prvok noveho pola


  
foreach(int prvok in V1) // zmena sa prejavila aj
Console.WriteLine(prvok); // v povodnom poli
  
Console.WriteLine("-------------------------");
 
  
V2  = (int[]) V1.Clone(); // naklonovanie pola
 
   
V2[0]=333; // zmenim prvok
 
  
foreach(int prvok in V1) // povodne pole neobsahuje
  
Console.WriteLine(prvok); // prvok 333
 
}
}

Najprv sme vytvorili takzvanú plytkú kópiu pola. To znamená, že obidve premenné odkazujú na tú istú oblasť pamäti v RAM (pamäť počítača). Preto zmena prvku v jednom poli sa prejaví aj v druhom poli. To je väčšinou nesprávne. Aby sa tak nedialo, musíme použiť funkciu Clone(), ktorá ale vracia prvok typu Object, ktorý musíme pretypovať. Ak neviete, čo to je, nemajte strach, bude to vysvetlené neskôr, hlavne si zatiaľ pozrite syntax v príklade.

Pre lepšie pochopenie ešte obrázok:
                            


>> Čo bude nabudúce?

Rozhodol som sa, že je ešte čas začať s objektovo orientovaním programovaním, aj keď ho už aj tak využívame v každom príklade. Takže nabudúce dokončíme zaujímavé typy premenných ako sú enemerata, štruktúry, textové reťazce atď.


>> Ak budete mat trochu času, tak mi napíšte do diskusie, či sa vám článok páčil, ako hodnotíte seriál o C# celkovo, čo by som mal na mojom štýle vysvetľovania zmeniť a podobne. Uvítam každú konštruktívnu kritiku.

Michal Čižmár

micitn@orangemail.sk <mailto:micitn@orangemail.sk>



SEE YOU!


>> Všetky príklady z článku:
www.inet.sk/download/user/Priklad8.1_TriedenieVektora.zip
www.inet.sk/download/user/Priklad8.2_HladaniePrvku.zip
www.inet.sk/download/user/Priklad8.3_HladaniePrvku2.zip
www.inet.sk/download/user/Priklad8.4_OpacneUsporiadanie.zip
www.inet.sk/download/user/Priklad8.5_KopirovaniePoli.zip



>> Minulé články
Programujeme v jazyku C# - Diel 7. - Polia III.
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