Java: eliminazione diagonale di una matrice

Tema 104

Scrivere un metodo creaMatriceEscludendoElementiDiagonalePrincipale che riceve una matrice di interi M e restituisce una matrice ottenuta da M eliminando gli elementi che appartengono alla diagonale principale.

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 creaMatriceEscludendoElementiDiagonalePrincipale (M) darà

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

 public class tema104{ public static int[][] creaMatriceEscludendoElementiDiagonalePrincipale (int[][] M){ // creiamo una nuova matrice con ugual numero di righe di M e numero di colonne // diminuito di 1 int[][] nuovaMatrice = new int[M.length][M.length-1]; // approntiamo gli indici per scorrere le celle della nuova matrice int r = 0; int c; // avviamo i cicli per scorrere la matrice M riga per riga for(int i = 0; i < M.length; i++){ // inizializziamo l’indice di colonna della nuova matrice c = 0; // accediamo agli elementi di M for(int j = 0; j < M.length; j++) // escludiamo solo gli elementi i cui indici di riga coincidono con gli indici // di colonna if(j != i) { nuovaMatrice[r][c] = M[i][j]; // incrementiamo gli indici della nuova matrice c++;} r++;} 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}}; visualizzaMatrice (creaMatriceEscludendoElementiDiagonalePrincipale (M)); } }     

Commenti

commenti