#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.