Metody a premenne(polia) – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Metody a premenne(polia) – Java – Fórum – Programujte.comMetody a premenne(polia) – Java – Fórum – Programujte.com

 

jonatan
~ Anonymní uživatel
1 příspěvek
25. 8. 2011   #1
-
0
-

zdravim, prosim o pomoc. zadanie jednoduche. zavolat metodu, ktora nacita z klavesnice pocet riadkov a stlpcov a podla toho vypise maticu. problem: po nacitani cisel z klavesnice sa neulozia do pola. ak mi niekto poradi, tak by som dotycneho poprosil aj aspon dvoj-troj vetovy pokec, preco ten kod upravil, tak ako upravil. nejde mi ani tak o program samotny, ale skor o to, pochopit spravne deklarovanie jednotiek, ktore pouzivame v metodach. dakujem.

class Demo
{
public static void main(String arg[])
{

Metody met= new Metody();
met.zadaj();
met.vygeneruj();
}   
}

import java.util.*;
import java.io.*;

class Metody
{

Scanner scan=new Scanner(System.in);
Random ranom=new Random();
int a,b;
int [][]pole=new int[a][b] ;

void zadaj()
{
System.out.println("zadaj pocet riadkov pola: ");

a= scan.nextInt();
System.out.print("zadaj pocet stlpcov pola: ");
b= scan.nextInt();

}

void vygeneruj()
{

for(int i=0;i<pole.length;i++)
{
for(int j=0;j<pole.length;j++)
{pole[i][j]=ranom.nextInt(2);}
}

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

Nahlásit jako SPAM
IP: 178.40.48.–
Martin
~ Anonymní uživatel
1602 příspěvků
26. 8. 2011   #2
-
0
-

#1 jonatan
Ahoj, tak ten tvůj kód by bez nějakých větších zásahů mohl vypadat nějak takto: 



    public static void main(String arg[])
    {
        Metody met = new Metody();
        met.zadaj();
        met.vygeneruj();
    }   
 }

////////////////////////////////////////////////////////////////////


import java.util.Random;
import java.util.Scanner;

class Metody
{
    Scanner scan = new Scanner(System.in);
    Random random = new Random();
    int a, b;
    int[][] pole;

    void zadaj() {
        System.out.println("zadaj pocet riadkov pola: ");
        a = scan.nextInt();
        System.out.print("zadaj pocet stlpcov pola: ");
        b = scan.nextInt();
        
        pole = new int[a][b];
    }

    void vygeneruj() {
        for(int i = 0; i < a; i++) {
            for(int j = 0; j < b; j++) {
                pole[i][j] = random.nextInt(2);
            }
        }
       
        for(int i = 0; i < a; i++) {
            for(int j = 0; j < b; j++) {
                System.out.print(pole[i][j]);
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

1. Pokud použiješ  

int[][] pole = new int[a][b];

bude výsledkem pole o délce nula. For cykly se neprovedou a z tvého pohledu se "nic" neděje. Proměnné a,b nemají zatím hodnotu. Tu získají až přiřazením v metodě zadaj(). Čili vytvářet nové pole o dané velikosti musíš až tam.

2. Použít  

pole.length

ve for cyklu jako horní hranici není příliš štastné řešení, pokud jsou oba rozměry matice stejné tak to nevadí, ale sám si můžeš vyzkoušet, že matici 4x5 vykreslí jako 4x4. Jako horní indexy for cyklů použij proměnné a,b.

Pár tipů pro příště:
1. Až budeš znovu posílat zdroják, vlož jej jako zdrojový kód!
2. Snaž se formátovat své zdrojáky kvůli lepší čitelnosti, pár tabulátorů a mezer navíc by neškodilo. Možná ti to přijde zbytečné, ale u větších programů je to k nezaplacení.

Jinak ten kód je divoký, ale to tady rozebírat nebudu. Doufám, že ti to aspoň trošku pomohlo.

Nahlásit jako SPAM
IP: 146.102.122.–
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é

Podobná vlákna

Polia v C++ — založil Jur

3 polia — založil WhatsThiSs

Objekt a polia? — založil WraCkeR

Dynamické polia C++ — založil Filip

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ý