Vánoční nadílka Vánoční nadílka
Vánoční akce! Daruj lepší budoucnost blízkým nebo sobě. Až +50 % zdarma na dárkové poukazy. Více informací

Diskuze: Vytvoření polí v cyklu

C# .NET .NET (C# a Visual Basic) Vytvoření polí v cyklu American English version English version

Aktivity (3)
Avatar
Milan
Člen
Avatar
Milan:1. října 8:28

Ahoj, prosím o pomoc s vytvoření polí v cyklu. Potřebuji vygenerovat třeba 10 souřadnic b[x,y]. A potřebuji aby se každá jmenovala jinak b1, b2, b3 ...... A nevím jak udělat proměnné jméno toho pole.

Zkusil jsem: Vytvořit proměnné jméno pole, aby se při každém průchodu smyčkou vytvořilo nové a původní nepřepsalo. Bohužel neúspěšně.

Chci docílit: Vytvořit x polí s různým jménem a vše uložit pro pozdější použití.

 
Odpovědět 1. října 8:28
Avatar
Odpovídá na Milan
Erik Šťastný:1. října 8:39

Zmíněná pole musíš deklarovat před začátkem cyklu a uvnitř je pouze plnit.

 
Nahoru Odpovědět 1. října 8:39
Avatar
Milan
Člen
Avatar
Milan:1. října 8:41

Jasně, ale když nevím kolik polí bude, tak nevím kolik jich mám deklarovat. A udělat ručně třeba 1000 polí do foroty a pak postupně plnit? To se mi nezdá úplně dobré řešení. :-)

 
Nahoru Odpovědět  +1 1. října 8:41
Avatar
Odpovídá na Milan
Erik Šťastný:1. října 8:43

V tom případě si udělej List polí :) a přidávej do něj podle potřeby.

 
Nahoru Odpovědět  +3 1. října 8:43
Avatar
Odpovídá na Milan
Erik Šťastný:1. října 9:21

Teďka jsem si uvědomil, že jsi trval na nějakém názvu, pokud ti List nevyhovuje, tak můžeš používat Dictionary<string, pole>, kde ve stringu si můžeš "proměnnou" pojmenovat.

Editováno 1. října 9:22
 
Nahoru Odpovědět  +1 1. října 9:21
Avatar
Jan Procházka:1. října 16:56

Taková blbá otázka: Opravdu musíš používat N proměnných b1, b2,... , bN? Nemůžeš použít pole polí, nebo 2D pole, kde by b5 bylo zastoupený buď jako b[5] nebo jako pátý řádek?

Důleřitý je vědět, kdy se určí to N, jestli na začátku a pak se plní souřadnice a používají, nebo se N v průběhu mění. Pokud je pravda to první, dá se snadno použít vícerozměrné pole. Pokud se N mění, je výhodnější použít list.

Programově deklarovat proměnné je většinou cesta do pekel - snadno se tam vytvoří nějaký bug a dohledat zpětně kde je počátek problémů je práce zralá Chocholouška...

 
Nahoru Odpovědět  +2 1. října 16:56
Avatar
Jirka
Člen
Avatar
Odpovídá na Milan
Jirka:1. října 17:57

Můžeš vyzkoušet něco jako tohle:

List listPoli<Pole> = new ArrayList<>();
for(int i = 0; i < max; i ++) {
// zde pridavas pole do listu
}
Nahoru Odpovědět  +1 1. října 17:57
Kdo nic nedělá, nic nezkazí.
Avatar
HONZ4
Člen
Avatar
Odpovídá na Milan
HONZ4:3. října 19:30

Chceš docílit nesmyslu. Program přece nepotřebuje mít pole pojmenované.
Pokud potřebuješ mít víc polí, a předem neznáš jejich počet použij nějaký seznam (jak už bylo řečeno) např. List. Přemýšlet nad automatickým pojmenováním polí je znakem špatné koncepce kódu.

Případně popiš co přesně řešíš, pak ti určitě někdo poradí jak na to.

 
Nahoru Odpovědět 3. října 19:30
Avatar
Krystof Matejka:3. října 21:38

Nebo můžeš vytvořit trojrozměrné pole

int pocetPoli = 10; //zvolis pocet napr. pres readline
int[ , , ] pole = new int[ pocetPloi, x, y] ();
While(true) //nebo nejaky jiny cyklus
{
//tady to naplnis
}
Editováno 3. října 21:39
 
Nahoru Odpovědět  +1 3. října 21:38
Avatar
Mirek Slouka
Člen
Avatar
Odpovídá na Milan
Mirek Slouka:3. října 22:03

Nebo když už to chceš mít pojmenované, vytvoř si třídu, ve které budeš mít název, x, y. Když to použiješ v kombinaci s Listem, můžeš potom vyhledávat podle libovolného atributu třídy :). V podstatě si jen vytvoříš schránu pro data, pokud ti nejde o rychlost, tak by to mohlo stačit.

Nahoru Odpovědět 3. října 22:03
I can explain it to you, but I can't understand it for you.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.