Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 5. diel - Viacrozmerné polia v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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();

 
Odpovedať
2.8.2021 19:02
Avatar
Atrament
Člen
Avatar
Odpovedá 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...

 
Odpovedať
+1
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

Editované 21.10.2021 10:18
 
Odpovedať
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ů".

 
Odpovedať
+4
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.

 
Odpovedať
16.1.2023 16:57
Avatar
Niki Vávrová:2.2.2023 17:13

Pochopitelná lekce.

 
Odpovedať
2.2.2023 17:13
Avatar
Michael Hereit:20.2.2023 12:02

dobře napsáno :)

Odpovedať
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 }
               };
Editované 1.4.2023 17:16
 
Odpovedať
+3
1.4.2023 17:15
Avatar
Jarda
Člen
Avatar
Odpovedá 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😁

Editované 7.4.2023 7:29
 
Odpovedať
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.

 
Odpovedať
+2
23.5.2023 22:01
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 27.