Součet dvourozměrných polí – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Součet dvourozměrných polí – Java – Fórum – Programujte.comSoučet dvourozměrných polí – Java – Fórum – Programujte.com

 

1. 2. 2014   #1
-
0
-

Ahoj všem,

s Javou začínám a potřeboval bych vědět, jak co nejjednodušším způsobem napíšu součet pole polí s tím, že nebudu muset zadávat zbytečné rozepisování prvního rozměru.

int cestujici [][] = new int [5][];

int a,b,c;

a=0;

b=0;

c=0;

    cestujici [0] = new int [10];
    cestujici [1] = new int [10];
    cestujici [2] = new int [10];
    cestujici [3] = new int [10];
    cestujici [4] = new int [10];

for (i=0; i < 5; i++)
        for (j=0; j < 10; j++)
            cestujici [i][j] = i+j+10;

for(i = 0; i < 10; i++)
 a = a + cestujici [0][i] ;
System.out.println(a);
    
    for(i = 0; i < 10; i++)
    b = b + cestujici [1][i] ;
    System.out.println(b);
    

 for(i = 0; i < 10; i++)
 c = c + cestujici [2][i] ;
System.out.println(c);

Chtěl bych definovat pomocí cyklu for, abych nemusel pro první pole definovat proměnné (a,b,c atd.). Děkuji všem předem za pomoc v tomto pro mě začátku. ( Odpověď jsem negooglil, našel jsem si tuto stránku s tím, že se předem zeptám někoho zkušenějšího v této oblasti.)

Nahlásit jako SPAM
IP: 5.102.48.–
z
~ Anonymní uživatel
268 příspěvků
1. 2. 2014   #2
-
+1
-
Zajímavé

Toto?

for (i = 0; i < 5; i++) {
        x = 0;
        for (j = 0; j < 10; j++)
            x += cestujici [i][j];
        System.out.println(x);
}
Nahlásit jako SPAM
IP: 88.101.8.–
z
~ Anonymní uživatel
268 příspěvků
1. 2. 2014   #3
-
0
-

A pokud teda s těmi součty pak budeš ještě něco dělat a potřebuješ je držet, tak třeba takto 

int soucty[] = new int[5];

for (i=0; i < 5; i++) {
        soucty[i] = 0;
        for (j=0; j < 10; j++)
            soucty[i] += cestujici [i][j];
        System.out.println(soucty[i]);
}

Ale z toho, co už tam máš, bys obojí měl být schopen vymyslet sám. Takže nejspíš nechápu dotaz.

Nahlásit jako SPAM
IP: 88.101.8.–
lukas-prace
~ Anonymní uživatel
8 příspěvků
1. 2. 2014   #4
-
0
-

#2 z
Přesně tohle jsem myslel. Díky ti

Nahlásit jako SPAM
IP: 5.102.48.–
lukas-prace
~ Anonymní uživatel
8 příspěvků
1. 2. 2014   #5
-
0
-

#3 z
No já jsem to nějak nemohl vymyslet, jsem samouk a některý věci mi docházej těžce, ale snažím se.

Nahlásit jako SPAM
IP: 5.102.48.–
lukas-prace
~ Anonymní uživatel
8 příspěvků
1. 2. 2014   #6
-
0
-

Ještě bych se zeptal jak udělat součet "soucty":

int soucty[] = new int[5];

for (i=0; i < 5; i++) {

            soucty[i] = 0;

             for (j=0; j < 10; j++)

             soucty[i] += cestujici [i][j];

             System.out.println(soucty[i]);

}

zkoušel jsem dát iteraci pro součty, ale nějak mi to hází chybu.

for (int i = 0; i < soucty.length; i++)

     System.out.print(soucty[i]);  

bohužel tohle nefunguje. Děkuji za rozřešení této (pro mě) záhady. 

Nahlásit jako SPAM
IP: 5.102.48.–
Kit+15
Guru
1. 2. 2014   #7
-
0
-

#6 lukas-prace
Kdyby ses obtěžoval přečíst tu chybovou hlášku, tak by ses možná dozvěděl, že podruhé deklaruješ proměnnou "i".

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
lukas-prace
~ Anonymní uživatel
8 příspěvků
1. 2. 2014   #8
-
0
-

#7 Kit
Já jsem zkoušel deklarovat proměnou "r" a nešlo to taky. Dík 

Nahlásit jako SPAM
IP: 5.102.48.–
Kit+15
Guru
1. 2. 2014   #9
-
0
-

#8 lukas-prace
A ani tehdy sis tu chybovou hlášku nepřečetl? To jsou dnes programátoři, to civím.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kit+15
Guru
1. 2. 2014   #10
-
0
-

#8 lukas-prace
Kromě toho by se ta čísla "5" a "10" v programu neměla vyskytovat. Zkus to bez nich.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1. 2. 2014   #11
-
0
-

#10 Kit
já nějak nevim jak, jinak programátor nejsem, jen bych se to chtěl naučit, jen tak pro sebe. Došel jsem k tomuhle:

int cestujici [][]= new int [7][];
    int j,i;
    
    
    cestujici [0] = new int [10];
    cestujici [1] = new int [10];
    cestujici [2] = new int [10];
    cestujici [3] = new int [10];
    cestujici [4] = new int [10];
    
    
    
    for (i=0; i < 5 ; i++)
        for (j=0; j < 10; j++)
            cestujici [i][j] = i+j+10;
    
    
    
    int soucty[] = new int [5];
    for(i = 0; i < 5; i++){
        int x = 0;
        for (j=0; j < 10; j++)
            x += cestujici [i][j];
        System.out.print(x + " ");
    
    }
        
    
    
    for (j=0; j < 5; j++)
        
        System.out.print(soucty[j] + " ");

bohužel výpis z tohoto je 145 155 165 175 185 0 0 0 0 0 , tudíž se mi nedaří udělat součet čísel 145 155 165 175 185 . Děkuji předem za čas věnovaný této pomoci.

Nahlásit jako SPAM
IP: 5.102.48.–
z
~ Anonymní uživatel
268 příspěvků
1. 2. 2014   #12
-
0
-

Ten součet počítáš do x a vypisuješ ho, to jsou ta nenulová čísla. Pak vypisuješ prvky pole soucty, do kterého ale nic neukládáš, to jsou ty nuly.

Nahlásit jako SPAM
IP: 88.101.8.–
Kit+15
Guru
1. 2. 2014   #13
-
+1
-
Zajímavé

#11 lukas-prace
 Mně to funguje. Zkus najít 5 rozdílů

public static void main(String[] args) {
    int cestujici [][]= new int[5][];
    for (int i = 0; i < cestujici.length; i++) {
        cestujici[i] = new int[10];
        for (int j = 0; j < cestujici[i].length; j++)
            cestujici [i][j] = i+j+10;
    }
    int soucty[] = new int[cestujici.length];
    for (int i = 0; i < cestujici.length; i++){
        int x = 0;
        for (int j = 0; j < cestujici[i].length; j++)
            x += cestujici[i][j];
        soucty[i] = x;
        System.out.print(x + " ");
    }
    for (int j = 0; j < soucty.length; j++)
        System.out.print(soucty[j] + " ");
}
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
2. 2. 2014   #14
-
0
-

#13 Kit
#13 Kit
#10 Kit
 

Díky moc za tvůj čas, určitě mi tvoje řešení hodně moc pomohlo. Jinak myslel jsem to takhle:

public static void main(String[] args) {
        int cestujici [][]= new int[5][];
        for (int i = 0; i < cestujici.length; i++) {
            cestujici[i] = new int[10];
            for (int j = 0; j < cestujici[i].length; j++)
                cestujici [i][j] = i+j+10;
        }
        int soucty[] = new int[cestujici.length];
        for (int i = 0; i < cestujici.length; i++){
            int x = 0;
            for (int j = 0; j < cestujici[i].length; j++)
                x += cestujici[i][j];
            soucty[i] = x;
            //System.out.print(x + " ");
        }
        int n = 0;
        
        for (int j = 0; j < soucty.length; j++)
            n += soucty[j];
            System.out.print(n + " ");

kde výsledek je 825 , jde o součet všech polí. Ještě bych se zeptal jen informativně, jestli se to dá zapsat o hodně jednodušeji, třeba na polovinu řádků. Díky 

Nahlásit jako SPAM
IP: 5.102.48.–
Kit+15
Guru
2. 2. 2014   #15
-
+1
-
Zajímavé

#14 lukas-prace 

Pokud to chceš všechno sečíst a vypsat jako jedno číslo, tak je to poměrně triviální:

int x = 0;
for(int i = 0; i < cestujici.length; i++) {
    for (int j = 0; j < cestujici[i].length; j++)
        x += cestujici[i][j];
}
System.out.print(x);
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
2. 2. 2014   #16
-
0
-

#15 Kit
Díky Kite. 

Nahlásit jako SPAM
IP: 5.102.48.–
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, 24 hostů

Podobná vlákna

Hledání v poli polí — založil jaxx19

Největší v poli polí — založil Noneus

Soucet rady — založil AvsFan

Moderátoři diskuze

 

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