Goto http://www.stucuk.netGoto http://www.atlanticaonlinewiki.comGoto http://www.game-requirements.com

Arrays/cs

From Original War Support Wiki

Jump to: navigation, search

Tutorials/cs -> Arrays/cs

Contents

Úvod

Pole, nebo také seznam, je kolekce hodnot (libovolného typu). Každá hodnota je oddělena čárkou. Seznam začíná [ a končí ].
Pozice specifického prvku v seznamu se nazývá index. Např. v seznamu: [5, 7, 4, 2] má hodnota (prvek) "7" index "2".

Příklad práce s poly

1) Použití jediné hodnoty z pole:

list := [2, 3, 4];
jeden_prvek := list [3]; // jeden_prvek bude mít hodnotu 4, protože třetí [3] prvek v seznamu list je 4

2) Spojení více polí do jednoho:

pole1 := [2, 3, 4];
pole2 := [3, 4, 5];
spojenePole := pole1 ^ pole2;

spojenePole bude obsahovat: [2, 3, 4, 3, 4, 5]

Nicméně někdy potřebujeme jiné výsledky, obvykle při práci s jednotkami. Tehdy nám stačí ve výsledném seznamu ne více než jedna jednotka. Právě tehdy můžeme ocenit operátor union:

 spojenePOle := [John, Bobby, Joan] union [John, Joan, Cyrus, Radzio];

JointArray bude opsahovat: [John, Bobby, Joan, Cyrus, Radzio]

Union vyloučí všechny opakující se hodnoty v seznamu, poté vyloučí z pravého seznamu ty, které se již nacházejí v levém, a nakonec spojí oba seznamy do jednoho.
Může být také použit k odstranění všech opakujících se hodnot ze seznamu:

 spojenePole := [1, 2, 1, 1, 2, 3] union [];

JointArray bude obsahovat: [1, 2, 3]

3) Vyloučení hodnoty nebo celého pole z jiného pole:

mojePole := [1, 2, 3, 4, 5] diff [1, 4];
mojePole := mojePole diff 5;

mojePole bude obsahovat: [2, 3]

Poznámka: diff odstraní všechny opakující se hodnoty (stejně jako union - viz výše) a může být použito stejně jako union na jednom seznamu pro dosažení stejného výsledku

4) Práce s každým jednotlivým prvkem v poli:

var a, mojePole;
// nějaký kód
mojePole := [John, Joan, Bobby];
for a in mojePole do
begin
  if (not IsDead(a)) then
    KillUnit(a);
end;

A každý, kdo zatím byl v seznamu živý, právě zemřel.

Pole, matematika a porovnání

Jestliže použijeme pole v matematickém výrazu:

[1, 3] * [9, 3, 7] + [11]

je s ním zacházeno jako s číslem stejným, jako velikost pole; t.j. kolik prvků obsahuje. Takže výsledek výše uvedeného výrazu je 2 * 3 + 1 = 7
To stejné se stane, pokud porovnáme pole s čílem: [1, 5, 3, 4, 0] = 5 je pravdivý.
Nicméně, jestliže porovnáte spolu dva pole, budou brána za sobě rovná právě tehdy, pokud jsou stejně velká a na stejných pozicích obsahuje stejné hodnoty:

pravda:
[1, 2, 3, 4] = [1, 2, 3, 4]
nepravda:
[1, 2, 3, 4] = [1, 2, 3, 4, 4]
[1, 2, 3, 4] = [2, 1, 4, 3]

Úprava polí pomocí indexu

Personal tools
Clanbase