C# - 5.lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

C# - 5.lekceC# - 5.lekce

 

C# - 5.lekce

Google       Google       31. 8. 2005       65 809×

Podíváte se na jednotlivé druhy polí a na to, jak je obsloužit. Rozdělíme je na tři základní typy a to na pole jednorozměrné, pole pravoúhlé a pole zubaté...

Reklama
Reklama

Jednoduché jednorozměrné pole

Při deklaraci nejprve určíme datový typ, kterého pole může nabývat, a zadruhé velikost prvního rozměru. Jednorozměrné pole má jen jeden rozměr, tedy jednu řadu prvků. Pole se deklarují za pomoci hranatých závorek, příklad:


int[] i = new int[100];

Tímto řádkem deklarujeme jednorozměrné pole se jménem i a velikostí 100 prvků. Je to prostor na 100 celočíselných hodnot (typ int), indexovaných od i[0] do i[99].

Ukázka prostého naplnění jednotlivých položek pole:


int[] i = new int[2];
i[0] = 1;
i[1] = 2;

Takto naplníme pole hned při deklaraci:


  

int[] i = new int[] {1,2};

kratší verze předchozí ukázky:


int[] i = {1,2};

Měli bychom pamatovat na fakt, že pole je v C# vždy indexováno od nuly, lze to sice změnit, ale nedoporučuje se to.

Délku pole (počet prvků, které obsahuje) je možné získat pomocí vlastnosti Lenght, kterou lze pouze číst. Délku pole uvedeného výše zjistíte takto: i.Length a dostanete hodnotu 2.

Pravoúhlá pole

C# podporuje 2 typy vícerozměrných polí: pravoúhlé a zubaté. Pravoúhlé pole je pole o více dimenzích, jejichž rozměry se po deklaraci nemění. Vytvoření pole o 2 řadách a 3 sloupcích:


int[,] squareArray = new int[2,3];

totéž, jen to naplníme hned v deklaraci:


  

int[,] squareArray = {{1, 2, 3}, {4, 5, 6}};

Třída System.Array zahrnuje metody pro odvození hranic pole. Pro horní hranici GetUpperBound(int i) a pro dolní GetLowerBound(int i), které vrací rozměry zadané dimenze.

Pro druhý rozměr pole o třech sloupcích, užijeme výrazy:


squareArray.GetLowerBound(1)

vrátí 0, a


squareArray.GetUpperBound(1)

vrátí 2.

Opět je možné použít metodu GetLength(int i), (pořád indexujete od 0)

Ukázka výpisu hodnot jednotlivých prvků pole:


for(int i = 0; i < squareArray.GetLength(0); i++)
  for (int j = 0; j < squareArray.GetLength(1); j++)
    Console.WriteLine(squareArray[i,j]);

Smyčka foreach lze také použít, ale nemáte takový přehled o tom, co bylo vybráno.

Zubaté pole

Je to vícerozměrné pole s nepravidelnými rozměry dimenzí. To je možné díky tomu, že tyto pole se deklarují jako pole polí. Nyní ukázka, jak jedna dimenze může mít 4 prvky a druhá 6:


int[][] jag = new int[2][];
jag[0] = new int [4];
jag[1] = new int [6];

Tento zápis vám odhalil, že jednotlivé dimenze odkazují na jednorozměrné celočíselné pole pole jag.

A zase naplnění již při deklaraci:


int[][] jag = new int[][] {new int[] {1, 2, 3, 4}, new int[] {5, 6, 7, 8, 9, 10}};

Při použití metod jako GetLowerBound, GetUpperBound, GetLength atd. buďme opatrní. Protože jsou postaveny na základě jednorozměrných polí a nemohou se chovat podobně jako pravoúhlá. Pozorně si projděte ukázku kódu!

Výpis obsahu jednotlivých prvků zubatého pole:


for (int i = 0; i < jag.GetLength(0); i++)
  for (int j = 0; j < jag[i].GetLength(0); j++)
    Console.WriteLine(jag[i][j]);

nebo


for (int i = 0; i < jag.Length; i++)
  for (int j = 0; j < jag[i].Length; j++)
    Console.WriteLine(jag[i][j]);

Jo abych nezapoměl, protože se mi pořád motá 1. osoba množného čísla s druhou, tak jsem se rozhodl dále články psát první osobou množného čísla, prý je to i přívětivější přístup :). A když mi občas něco ulítne, tak se omlouvám.

Zdroj: http://www.softsteel.co.uk/tutorials/cSharp/lesson6.html

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v C#.

Nové články

Reklama
Reklama
Obrázek ke článku Facebook spouští službu Marketplace V ČR

Facebook spouští službu Marketplace V ČR

Společná platforma Marketplace usnadní lidem na Facebooku vyhledávání, nákup a prodej použitého zboží na lokální úrovni. Bude tak přímou konkurencí pro weby a aplikace se stejným zaměřením jako je například Letgo, Bazoš, Aukro, Sbazar a další.

Obrázek ke článku DistrCut – optimalizace pomocí distribuované inteligence

DistrCut – optimalizace pomocí distribuované inteligence

Optimalizační systémy, které jsem dosud popisoval, se týkaly vždy optimalizace na jednom zařízení. Optimalizovalo se dělení tyčového materiálu na jedné pile, vypalování plošného materiálu na jednom plazmovém stroji, řídilo se tavení na jedné elektrické obloukové peci.

Ve výrobním procesu je však často nutné optimalizovat činnost celého výrobního úseku, kde je více různých objektů odlišného typu a koordinovat činnost těchto objektů k dosažení společného cíle, zpravidla kvality finálního výrobku. Řešení tohoto problému umožňuje distribuovaná inteligence.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý