Trojuhelnik z cisel z pole – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Trojuhelnik z cisel z pole – Java – Fórum – Programujte.comTrojuhelnik z cisel z pole – Java – Fórum – Programujte.com

 

shockwave0
Newbie
19. 2. 2022   #1
-
0
-

 Ahoj, omlouvam se, pomohla by mi prosim nejaka dobra duse a strucne popsala, co si mam predstavit , co se deje na jednotlivych oznacenych radcich-opravdu jen strucne popsat, nic vic a

za druhe, jak tenhle utvar vlozit do hlavni Main metody , aby se trojuhelnik vypsal?

Ja to tak nejak popsat umim jednotlive, ale jak je to takovyhle kod, tak mi dela to prelozit srozumitelne do lidske reci :(

Dekuju

public static void main(String[] args) {

    }

public void createTriangle2dArray(){

       int[][] multi = {{1,2,3,4},
				{5,6,7,8},
				{9,10,11,12},
				{13,14,15,16}};
				
        int[][]triangle = new int [16][];                //  myslim, vytvori 16 radku

        for(int row=0; row<triangle.length; row++){
            triangle[row] = new int[row+1];              //   ??  ze by toto vytvorilo dalsi radek
            for(int i=0; i< (row+1); i++){               //   ??
                triangle[row][i] = i;	                          //   ??
            }
        }

        print2DIntArray(triangle);
    }

    public void print2DIntArray(int [][]multi){
        for(int[] outer : multi){                   //vezme prvek(pri prochazeni) z pole multi a vlozi do outer pole??
            if(outer==null){                        //  ??
                System.out.print("null");          //  ??
            }else{
                for(int inner : outer){               // ??
                    System.out.print(inner + ",");   //  ??
                }
            }
            System.out.println("");
        }
    }
Nahlásit jako SPAM
IP: 212.4.155.–
Jerry
~ Anonymní uživatel
496 příspěvků
19. 2. 2022   #2
-
0
-

tady to máš napsaný

https://turbofuture.com/computers/002-Java-Ragged-Array-explained-with-Example

https://stackoverflow.com/questions/1200621/how-do-i-declare-and-initialize-an-array-in-java

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:cd06:13e:22e1:53c9...–
gna
~ Anonymní uživatel
1730 příspěvků
19. 2. 2022   #3
-
0
-

Dvourozměrné pole je jako pole polí, tj pole jehož položky jsou zase pole.

Takže nejdřív ti to vytvoří pole s 16 položkami. 

triangle = {
    /* 0*/ null,
    /* 1*/ null,
    /* 2*/ null,
    ...
    /*15*/ null,
}

Pak to tohle pole projde a naplní ho hodnotami (těmi vnitřními poli s délkou a obsahem podle aktuálního indexu). 

triangle = {
    /* 0*/ {0},
    /* 1*/ {0,1},
    /* 2*/ {0,1,2},
    ...
    /*15*/ {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},
}

Konstrukce for (X : Y) provede tělo cyklu pro každý prvek kolekce Y s tím, že aktuální prvek je v X. Takže to projde položky vnějšího pole (což jsem teda zase pole) a pak položky toho vnitřního pole (inty) a vypíše je.

Otazníky za printem a dotaz, jak zavolat metodu mě vytáčí. Prošel jsi několika programovacími jazyky a roky se ptáš na základní věci, které všude fungují stejně.

Nahlásit jako SPAM
IP: 213.211.51.–
peter
~ Anonymní uživatel
3888 příspěvků
21. 2. 2022   #4
-
0
-

   

       for(int row=0; row<triangle.length; row++){
            triangle[row] = new int[row+1];              //   ??  ze by toto vytvorilo dalsi radek
            for(int i=0; i< (row+1); i++){               //   ??
                triangle[row][i] = i;	                          //   ??
            }
        }

//dosad si tam hodnoty!
triangle.length = 16 //   int[][]triangle = new int [16][]; 
       for(int row=0; row<16; row++){

triangle[row] = new int[row+1]; // pole[x][] (delka=y), x = row, y = row+1

            for(int i=0; i< (row+1); i++){ // na zacatku je row=0, row+1 je 1
                triangle[row][i] = i; // pole[x][y] = z

takze, vysledkem je, ze...
row=0: pole[0][0] = 0
row=1: pole[1][0] = 0, pole[1][1] = 1
row=2: pole[2][0] = 0, pole[2][1] = 1, pole[2][2] = 2
...
row=15: pole[15][0] = 0, pole[15][1] = 1, pole[15][2] = 2, pole[15][3] = 3,...

nebo, jestli to to prijde vic srozumitelnejsi, tak vytvaris takoveto pole
pole = [
  [0],
  [0,1],
  [0,1,2],
  [0,1,2,3],
...
  [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
];

Proste, zapisujes do pole, ktere mohlo mit 16x16 hodnot (256) jen 1, 2, 3... 16 hodnot. Coz je nelogicke plytvani mistem pameti, ale nejspis jde o skolni priklad.

Nahlásit jako SPAM
IP: 2001:718:2601:258:b920:fd87:e38:f13e...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý