Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.

Diskuze: dvourozměrné pole

Java Java dvourozměrné pole

Avatar

Neregistrovaný
Avatar
:

Ahoj, mohl by mi někdo poradit jak do dvourozměrného pole např [2][5] uložím do každého prvku tohoto pole vrchol jako instaci nějaké třídy dejme tomu třeba Bod?

 
Odpovědět 1.3.2014 11:53
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na
Zdeněk Pavlátka:
int width = 2, height = 5;
Bod[][] pole = new Bod[width][height];
for(int i = 0; i < width; i++)
    for(int j = 0; j < height; j++)
        pole[i][j] = new Bod();

Třeba takhle?

Nahoru Odpovědět 1.3.2014 11:56
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar

Neregistrovaný
Avatar
:

A prosim tě jak z toho dvourozměrného pole vypíšu ty hodnoty?tady se asi nepoužívá foreach

 
Nahoru Odpovědět 1.3.2014 12:46
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na
tomisoka:

Jednoduse takto:

int width = 2, height = 5;
 int[][] pole = new int[width][height];
 for(int i = 0; i < width; i++){
      for(int j = 0; j < height; j++){
System.out.println(pole[i][j]);
}
}

nebo pokud pocitas s tim ze pole budes vytvaret takto :

int[][] pole = new int[][]{new int[4], new int[5]};
/*vytvoris pole "pole" obsahujici pole o velikosti 4 a 5*/

tak pouzijes toto:

for(int i = 0; i < pole.length; i++){
      for(int j = 0; j < pole[j].length; j++){
System.out.println(pole[i][j]);
}
}
Editováno 1.3.2014 20:02
 
Nahoru Odpovědět 1.3.2014 19:59
Avatar
Silvinios
Redaktor
Avatar
Odpovídá na
Silvinios:

For-each použít lze. Jenom je třeba si uvědomit, že dvourozměrné pole je pole, jehož prvky jsou pole:

for (Bod[] p : pole) {
  for (Bod bod : p) {
    System.out.println(bod);
  }
}
Editováno 2.3.2014 12:30
 
Nahoru Odpovědět 2.3.2014 12:28
Avatar

Neregistrovaný
Avatar
:

A když ta instance třídy bod má dva parametry Bod(a,b),jak to pak vypíšu aby se vypsali oba parametry?

 
Nahoru Odpovědět 2.3.2014 17:01
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na
tomisoka:

udelas v Bodu nejakou metodu ktera to bude vracet ve Stringu.
Napr.:

public String toString(){
return a + " " + b;
}
 
Nahoru Odpovědět 2.3.2014 17:35
Avatar

Neregistrovaný
Avatar
:
Bod[][]pole=new Bod[2][5];
                for(int i =0;i<2;i++){
                        for (int j=0;j<5;j++){
                                pole[i][j]=new Bod(new Random().nextInt(3),new Random().nextInt(3));


                }
                }

Myslel jsem to vypsání tý instance, která je teď uložená v tom dvourozmšrném poli

 
Nahoru Odpovědět 2.3.2014 17:58
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na
tomisoka:

Tak pokud jsem pochopil spravne tak chces vypsat napriklad jakou hodnotu maji promene "a" a "b" v Bodu.
Coz udelas tim ze pouzijes tu metodu co vraci String, napr.:

System.out.println(bod[0][0].toString());

Jinak nevim co by mohlo znamenat vypsani instance

 
Nahoru Odpovědět 2.3.2014 18:40
Avatar

Neregistrovaný
Avatar
:
Bod[][] pole = new Bod[2][5];

        for (int i = 0; i < 2; i++) {
                for (int j = 0; j < 5; j++) {
                        pole[i][j] = new Bod(new Random().nextInt(100),
                                        new Random().nextInt(100));
                        System.out.println("Hodnota parametru x je " + pole[i][j].a);
                        System.out.println("Hodnota parametru y je " + pole[i][j].b);

                }
        }

Mohl by mě ještě někdo poradit jak z tohoto kódu vypíšu nejnižší hodnotu b, kterou potřebuju uložit do proměnmé min typu Bod

 
Nahoru Odpovědět 4.3.2014 8:18
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na
Zdeněk Pavlátka:

Definuj "nejnižší hodnotu".

Nahoru Odpovědět 4.3.2014 8:19
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar

Neregistrovaný
Avatar
:

Ono by to spíš mělo být tak, že budu porovnávat hodnotu s tou proměnnou min a pokud se najde hodnota co je menší než min tak proměnná min bude nabývat právě tuto hodnotu. Jde o že u dvourozměrného pole nevím jak se s tím pracuje

 
Nahoru Odpovědět 4.3.2014 14:47
Avatar
tomisoka
Redaktor
Avatar
Odpovídá na
tomisoka:

Prakticky uplne stejne jako s normalnim polem

Jenom je třeba si uvědomit, že dvourozměrné pole je pole, jehož prvky jsou pole

Pokud ti to dela problem tak jedine co muzu poradit je : testuj, testuj a testuj

 
Nahoru Odpovědět 4.3.2014 19:39
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 13 zpráv z 13.