Autor Zpráva
george
Profil
Zdravím, nevíte někdo, jak šikovně přetížit konstruktor tím, že načtu hodnoty do dvourozměrného pole typu int a následně vytvořím metodu, která mi matici vytiskne, aniž by se mi vypsala chyba? Já zkouším různé metody, ale zatím mi to moc nejde. Můj program:

public static void main(String[] args) {


int delkaMatice;

Scanner enter = new Scanner(System.in);
System.out.println("---------------------------------------------");
System.out.println("Zadejte rozměr pro náhodnou čvercovou matici:");
delkaMatice = enter.nextInt();
Matice mat = new Matice(delkaMatice);
mat.vypisMatici();
}
}

a třída ve které je matice:

private int [][] poleMatice;

public Matice(int delkaMatice) {
// int[][] poleMatice = new int[delkaMatice][delkaMatice];
for (int i = 0; i < poleMatice.length; i++) {
for (int j = 0; j < poleMatice.length; j++) {
poleMatice[i][j] = (int) ((101) * Math.random());
// int pom;
// pom = matice[i][j];
// poleMatice[i][j] = pom;
}
}
}

public void vypisMatici() {
for (int i = 0; i < poleMatice.length; i++) {
for (int j = 0; j < poleMatice.length; j++) {
System.out.print(" " + poleMatice[i][j]);
}
}
}

}

Co bych od programu chtěl? Chci naplnit čtvercovou matici náhodnými čísly. Tuto matici naplním v přetížení konstruktoru. Následně přes metodu void ji vytisknu s cykly for a v mainu ji vytisknu.

Děkuji


Našel jsem si řešení:

public static void main(String[] args) {
        maice90 matice=new maice90(4, 4);
        matice.vypismatice();
        matice.rotace90Vlevo();
        System.out.println("");
        matice.vypismatice();
        // TODO code application logic here
    }

}

public class maice90 {

    private int[][] matice;
    private int sloupce;
    private int radky;

    public maice90(int radky, int sloupce) {
        this.radky = radky;
        this.sloupce = sloupce;
        matice = new int[radky][sloupce];
        for (int i = 0; i < sloupce; i++) {
            for (int j = 0; j < radky; j++) {
                matice[i][j] = (int) (10 - Math.random() *5 );

            }
        }
    }

    public void vypismatice() {
        for (int i = 0; i < sloupce; i++) {
            for (int j = 0; j < radky; j++) {
                System.out.print(matice[i][j]);

            }
            System.out.println("");
        }

    }

    public void PrehozeniU4x4() {
        int pomocna = 0;
        int pomocna2 = 0;

        for (int i = 0; i < sloupce; i++) {
            for (int j = 0; j < radky; j++) {
                pomocna = matice[i][sloupce];
                matice[i][sloupce] = matice[i][i];
                pomocna2 = matice[radky][sloupce];
                matice[radky][sloupce] = pomocna;
                pomocna = matice[sloupce][i];
                matice[sloupce][i] = pomocna2;
                matice[i][i] = pomocna;

            }
        }

    }

 public void rotace90Vlevo(){

        int x, y;
        int pomocna [][] = new int [matice.length][matice.length];
        for (int i = 0; i < matice.length; i++) {
            for (int j = 0; j < matice.length; j++) {
                x = j;
                y = matice[i].length - i - 1;
                pomocna[i][j] = matice[x][y];
 //               System.out.format("%4d", pole[x][y]);
            }
           // System.out.println(" ");
        }
       // System.out.println(" ");
        matice=pomocna;
}
}

Takže jsem svůj problém vyřešil tímto příkladem.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0