Diskuze: řádkování v poli
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Každý prvek vypisuješ pomocí println, který způsobí odřádkování. Ty chceš odřádkovat jen s novým řádkem:
for (int i = 0; i <pole.length ; i++) {
for (int j = 0; j < pole[i].length; j++) {
pole[i][j]= i*1;
System.out.print(pole[i][j] + " ");
}
System.out.println();
}
Ahoj, ještě prosím o radu, máme předat tu matici jako parametr metodě
vypis2D a pak to vypsat v tomto tvaru.
---Vysledky---
( 0): 0 0 0 0 0 0 0 0 0 0
( 10): 1 1 1 1 1 1 1 1 1 1
( 20): 2 2 2 2 2 2 2 2 2 2
( 30): 3 3 3 3 3 3 3 3 3 3
jak to prosím, zadám do té metody vypis2D?Ten NullPointerException mám
dobře, když zadám nic, tak to nic nevypíše?
Díky moc za odpověď
public static void main(String[] args) {
System.out.println("Zadejte velikost pole:");
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[][] pole= new int[n][n];
for (int i = 0; i <pole.length ; i++) {
for (int j = 0; j < pole[i].length; j++) {
pole[i][j]= i*1;
vypis2D(pole);
}
}
// TODO code application logic here
}
public static void vypis2D(int[][] pole) {
System.out.println("---Vysledky---");
if (pole==null)
throw new NullPointerException
System.out.print("("+")"+":" pole[i][j] );
}}
Ono ti to vůbec zkompiluje, když neznáš proměnné i a j v metodě vypis2D ?
Btw ty 2 cykly mají být v té metodě vypis2D.
public class TestJavaApp {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] pole = new int[10][10];
for (int i = 0; i < pole.length; i++) {
for (int j = 0; j < pole[i].length; j++) {
pole[i][j] = i;
}
}
vypis2D(pole);
}
private static void vypis2D(int[][] pole) {
System.out.println("---Vysledky---");
for (int i = 0; i < pole.length; i++) {
System.out.print("( " + i * pole[i].length + "): ");
for (int j = 0; j < pole[i].length; j++) {
System.out.print(pole[i][j] + " ");
}
System.out.println();
}
}
}
já jsem tam právě ten for cyklus měl, pro to vypisování, ale dal jsem blbě ten odkaz toho pole za složený závorky, což mi vypisovalo kraviny, tak jsem nevěděl v čem je chyba.Každopádně díky moc. Teď to funguje v pohodě, ale bohužel máme odevzdávací automat a chce to nějak zarovnaný, což netuším jak se udělá. To musím napsat zvlášť for pro řádek 0? Takhle to má vypadat
( 0): 0 0 0 0 0 0 0 0 0 0
( 10): 1 1 1 1 1 1 1 1 1 1
( 20): 2 2 2 2 2 2 2 2 2 2
( 30): 3 3 3 3 3 3 3 3 3 3
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] pole = new int[n][n];
for (int i = 0; i < pole.length; i++) {
for (int j = 0; j < pole[i].length; j++) {
pole[i][j] = i;
}
}
vypis2D(pole);
}
private static void vypis2D(int[][] pole) {
System.out.println("---Vysledky---");
for (int i = 0; i < pole.length; i++) {
System.out.print("(" + padLeft(Integer.toString(i * pole[i].length), 4) + "): ");
for (int j = 0; j < pole[i].length; j++) {
System.out.print(padLeft( Integer.toString(pole[i][j]) , 4));
}
System.out.println();
}
}
private static String padLeft(String s, int n) {
return String.format("%1$" + n + "s", s);
}
Co zapojit trošku svojí snahy, což ?
Metoda padLeft() je zbytečná. Dá se použít i System.out.format()
System.out.print("(%4s):", i * pole[i].length);
for (int j = 0; j < pole[i].length; j++) {
System.out.format("%4s", pole[i][j]);
}
System.out.println();
ahoj, tak už mám konečně správně to vypisování ale při odevzdání na mě vyskočily dvě chybové hlášky
jak se tam napíše prosím Vás, to testovaní na žádný vstup bude to
pomocí if==null throw NullPointer Exception? v zadání mame že metoda vypis2D
bude otestovánana na schopnost vypisovat matice s různě dlouhymi radky a
nevypsání ničeho, pokud bude vstup null.
děkuji za rady
public static void main(String[] args) {
System.out.println("Zadejte velikost pole:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] pole = new int[n][n];
for (int i = 0; i < pole.length; i++) {
for (int j = 0; j < pole[i].length; j++) {
pole[i][j] = i;
}
}
vypis2D(pole);
}
public static void vypis2D(int[][] pole) {
System.out.println("---Vysledky---");
for (int i = 0; i < pole.length; i++) {
System.out.format("(%4s):", i * pole[i].length);
for (int j = 0; j < pole[i].length; j++) {
System.out.printf(Locale.US, "%4d", pole[i][j]);
}
System.out.println();
}
}
}
Zobrazeno 13 zpráv z 13.