IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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: Proc ma promenna zapornou hodnotu

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
josef klouda
Člen
Avatar
josef klouda:13.2.2022 15:16
public void createTriangle2dArray(){

       int[][]triangle = new int [16][];

       for(int row=0; row<triangle.length; row++){  // pokud row je mensi, nez delka pole, pridat radek??
           triangle[row] = new int[row+1];  //??
           for(int i=0; i< (row+1); i++){    // ??
               triangle[row][i] = i;   // uz vubec netusim, co by to mohlo mit za vyznam
           }
       }

       print2DIntArray(triangle);
   }

   public void print2DIntArray(int [][]multi){
       for(int[] outer : multi){
           if(outer==null){   // ??
               System.out.print("null");
           }else{
               for(int inner : outer){  // ??
                   System.out.print(inner + ","); //??
               }
           }
           System.out.println("");
       }
   }

Zkusil jsem: Vlozit do main, bez uspechu. Pochopit to...

Chci docílit: Pochopeni kodu. U kodu, ktery me mate nebo taapu jsem napsal otazniky. Jestli by to nekdo prosim k tomu rozepsal, autor to nejak neresi. Dekuju moc

Jinak kam tohle prosim zaclenit do main hlavni funkce?

 
Odpovědět
13.2.2022 15:16
Avatar
josef klouda
Člen
Avatar
josef klouda:13.2.2022 15:18

omlouvam se , nadpis mel byt** vytvoreni trojuhelniku z cisel**

 
Nahoru Odpovědět
13.2.2022 15:18
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13.2.2022 16:57

jestli to dobre chapu, ikdyz o jave nic nevim :) ...

int[][]triangle - jestli to spravne chapu, tak je to vytvor dvourozmerne pole
[16][] - znamena, ze tam bude 16 radku

row=0; row<triangle.length; row++ je totez jako
row=0; row<16; row++

triangle[row] = new int[row+1]
triangle[0] = [1]
triangle[1] = [2]
...

for(int i=0; i< (row+1); i++)
for(int i=0; i<1; i++)
for(int i=0; i<2; i++)
for(int i=0; i<3; i++)

triangle[row][i] = i;
triangle[0][0] = 0;

triangle[0][0] = 0;
triangle[0][1] = 1;

cili, do toho pole by to mohlo zapsat trojuhelnik jako sadu integer cisel a to

0
01
012
0123
...
0123456789 10 11 12 13 14
0123456789 10 11 12 13 14 15
 
Nahoru Odpovědět
13.2.2022 16:57
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na josef klouda
Atrament:13.2.2022 18:24

https://www.itnetwork.cz/java/zaklady

Prolítni si hlavně lekce 5,6,7 a 12 a budeš vědět vše co potřebuješ ;)

 
Nahoru Odpovědět
13.2.2022 18:24
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:14.2.2022 8:35

kdyz ti napisi pseudokod, jak si myslim, ze to funguje, mozna to bude jasnejsi

       triangle = new array(16); // vytvor pole delky 16 (index 0-15) [A]
       j_end = triangle.length; // 16
       j = 0
       while(j<j_end){
           triangle[j] = new array(j+1); // kdyz delas dvourozmerne pole, musis si vytvorit druhou uroven [B]
           i_end = j + 1;
           i = 0
           while(i<i_end){
               triangle[j][i] = i;   // do pole ulozis hodnotu [C]
               i++
              }
            j++;
           }

A [] (delka pameti bude 16, jako indexy se pouzije integer)
B [
0: [], (delka 1 (=row+1: row=1, row+1=1), index integer)
1: [],
2: [],
3: [], ...
 ]
Ale stale je to jen prazdne pole
zobraz(triangle) // vypise "", "", "" .... nic

C teprve naplnis pole hodnotami, davas tam i, i zacina i=0 a konci i<row+1, cili row
0: [0],
1: [0,1],
2: [0,1,2],
3: [0,1,2,3], ...

Kdyz B vynechas, tak ti pri C bude prekladac hlasit error, ze ta uroven neexistuje.
Cili, muzes vzdy vytvorit jen jednu uroven pole.

Editováno 14.2.2022 8:37
 
Nahoru Odpovědět
14.2.2022 8:35
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 5 zpráv z 5.