NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 5 - Vícerozměrná pole v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Robert Vyskup:2.8.2021 19:02

Vůbec nevím co mám u toho kinosálu špatně, ale vypíše mi to na konzoli 00000 a 11111 ve sloupcích a ne v řádcích

public static void main(String[] args) {
        int[][] kinosal = new int[5][5]; // ustanovení kinosálu s 5 řadami a 5 sedačkami v každé řadě
        kinosal[2][2] = 1; //definice prostředku a umístění 1
        for (int i = 1; i < 4; i++) { // zaplnění 4. řady 3 místy
            kinosal[i][3] = 1;          // 4. řada zde má číslo 3
        }
        for (int i = 0; i < 5; i++) { // zaplnění celé poslední 5. řady
            kinosal[i][4] = 1;
        }                                           //výpis
        for (int j = 0; j < kinosal[0].length; j++) { //definice řad - osa y
            for (int i = 0; i < kinosal.length; i++) { //definice sedaček - osa x
                System.out.println(kinosal[i][j]);
            }
            System.out.println();
        }
    }

Taky nechápu proč musí být v programu to poslední System.out.prin­tln();

 
Odpovědět
2.8.2021 19:02
Avatar
Atrament
Člen
Avatar
Odpovídá na Robert Vyskup
Atrament:2.8.2021 20:05

Máš to vypisovat pomocí print a ne println, ty přece nechceš každé sedadlo na novém řádku. Odřádkovat chceš až poté co vypíšeš celou jednu řadu a na to je tam to poslední println. Je to vysvětlené v podkapitole Výpis...

 
Odpovědět
2.8.2021 20:05
Avatar
ing. SARNOVSKÝ Petr:21.10.2021 10:17

Ahoj,
jen pro upozorneni. V casti "N-rozmerna pole" je pracovano s polem o rozmeru 553 s odkazem, pro predstavu, na prislusny obrazek, kde je ovsem vyobrazeno pole 443.
Petr

Editováno 21.10.2021 10:18
 
Odpovědět
21.10.2021 10:17
Avatar
Jaroslav Drobek:28.1.2022 8:58

Proč nepoužít označení pro sloupce/řadky jako u matic?

V příkladech by bylo názornější použít pole "obdélníkových tvarů".

 
Odpovědět
28.1.2022 8:58
Avatar
Jan Trnka
Člen
Avatar
Jan Trnka:16.1.2023 16:57

Dobře napsaná lekce. Pokračuji dále.

 
Odpovědět
16.1.2023 16:57
Avatar
Niki Vávrová:2.2.2023 17:13

Pochopitelná lekce.

 
Odpovědět
2.2.2023 17:13
Avatar
Michael Hereit:20.2.2023 12:02

dobře napsáno :)

Odpovědět
20.2.2023 12:02
All we 've to decide is what to do with the time that is given us. (J.R.R. Tolkien)
Avatar
Pavel Vaněk
Člen
Avatar
Pavel Vaněk:1.4.2023 17:15

Nenašel jsem potvrzení informace z článku, že "První číslice udává počet sloupců, druhá počet řádků".

Všechny zdroje na internetu co jsem viděl říkají, že první je počet řádků a druhý počet sloupců. Pak je logické, že pole.lenght vrátí počet řádků a pole[index].lenght vrátí délku konkrétního pole.

Nevysvětluje to autor obráceně než zbytek internetu?

https://stackoverflow.com/…s-or-columns

Java specifies arrays similar to that of a "row major" configuration, meaning that it indexes rows first. This is because a 2D array is an "array of arrays".

For example:

int[ ][ ] a = new int[2][4];  // Two rows and four columns.

a[0][0] a[0][1] a[0][2] a[0][3]

a[1][0] a[1][1] a[1][2] a[1][3]
It can also be visualized more like this:

a[0] ->  [0] [1] [2] [3]
a[1] ->  [0] [1] [2] [3]
The second illustration shows the "array of arrays" aspect. The first array contains {a[0] and a[1]}, and each of those is an array containing four elements, {[0][1][2][3]}.

https://math.hws.edu/…8/c7/s5.html

int[][] A;
A = new int[3][4];
This creates a 2D array of int that has 12 elements arranged in 3 rows and 4 columns. Although I haven't mentioned it, there are initializers for 2D arrays. For example, this statement creates the 3-by-4 array that is shown in the picture below:

int[][]  A  =  {  {  1,  0, 12, -1 },
                  {  7, -3,  2,  5 },
                  { -5, -2,  2, -9 }
               };
Editováno 1.4.2023 17:16
 
Odpovědět
1.4.2023 17:15
Avatar
Jarda
Člen
Avatar
Odpovídá na Pavel Vaněk
Jarda:7.4.2023 7:26

Ahoj, zrovna sem to hledal- po vyzkouseni v sololearn kod:

int [][] array=new int[5][8];

  for(int i=0;i<array.length;i++){
      for(int y=0;y<array[0].length;y++){
          array[i][y]=5;
          System.out.print(array[i][y]);
      }
      System.out.println("");
  }

Kdyz zadam i<array[0].length kod vypise pet znaku na radek a po probehnuti cyklu vypise vyjimku indexOutOfBounds, takze to tu je asi opravdu spatne.

Jinak diky za clanek, doted sem pracoval s hranatymi poli a u jednoho obdelnikoveho sem nemohl prijit na to, proc se nevypise cely radek. Nyni mi to funguje😁

Editováno 7.4.2023 7:29
 
Odpovědět
7.4.2023 7:26
Avatar
Pavel Mikuška:23.5.2023 22:01

Dvojrozmerne pole funguje: Typ[index riadka][index stlpca] nazov. Ked sa snazim niekomu prvy krat v zivote vysvetlit 2D polia, tak to nekomplikujem a neprevraciam naopak. Preco? Pripadate si chytrejsi? Ucitel si nema co dokazovat pred ziakom, ze je mudrejsi. Ukazem to najprv NORMALNE a potom ukazem dalsie moznosti.

 
Odpovědět
23.5.2023 22:01
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 27.