Java: matrice con una riga e colonna invertite

Tema 96

Scrivere un metodo creaMatriceInvertendoUnaRigaEunaColonna che riceve una matrice quadrata di interi M e due numeri R e C e restituisce una matrice contenente due righe, ottenute invertendo la riga R di M e la colonna C di M.

Ad esempio, sia M la matrice così costituita

3 18 15 7 2
1 9 11 4 6
7 2 6 3 5
5 1 25 2 1
3 2 33 4 4

allora creaMatriceInvertendoUnaRigaEunaColonna (M,1,3)

6 4 11 9 1
4 2 3 4 7

 public class tema96{ public static int[][] creaMatriceInvertendoUnaRigaEunaColonna (int[][] M, int R, int C){ // approntiamo una nuova matrice con numero di righe pari a 2 e numero di // colonne pari a quelle di M int[][] nuovaMatrice = new int[2][M.length]; // scorriamo a ritroso la matrice per la prima operazione di riempimento for (int i = M.length-1; i >= 0; i--){ // riempiamo la prima riga della nuova matrice con gli elementi della riga R in // ordine inverso nuovaMatrice[0][M.length-i-1] = M[R][i];} // scorriamo a ritroso la matrice per la seconda operazione di riempimento for (int i = M.length-1; i >= 0; i--){ // riempiamo la seconda riga della nuova matrice con gli elementi della colonna // C in ordine inverso nuovaMatrice[1][M.length-i-1] = M[i][C];} return nuovaMatrice; }  public static void visualizzaMatrice (int[][] M) { for (int i = 0; i < M.length; i++) { for (int j = 0; j < M[i].length; j++) System.out.print(M[i][j] + " "); System.out.println();} }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; int[][] Q = creaMatriceInvertendoUnaRigaEunaColonna (M,1,3); visualizzaMatrice (Q); } }     

Commenti

commenti