| 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. |
||
|
Časová prodleva: 14 let
|
|||
Toto téma je uzamčeno. Odpověď nelze zaslat.
0