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