Java: cancellazione riga e colonna di una matrice
Tema 82
Scrivere un metodo eliminaUnaRigaEunaColonna che riceve in ingresso una matrice quadrata di interi M e due interi R e C e restituisce una matrice Q ottenuta da M eliminando la riga R e la colonna C.
Ad esempio, sia M la matrice così costituita
allora eliminaUnaRigaEunaColonna (M,1,2) restituisce la matrice
6 | 4 | 9 | 12 |
14 | 21 | 1 | 4 |
8 | 10 | 3 | 1 |
10 | 2 | 10 | 30 |
public class tema82{ public static int[][] eliminaUnaRigaEunaColonna (int [][] M, int R, int C) { // approntiamo una matrice le cui dimensioni saranno diminuite di 1 rispetto // alla matrice M int [][] Q = new int[M.length-1][M[0].length-1]; // creiamo un indice per le righe della nuova matrice int indiceRiga = 0; // creiamo un indice per le colonne della nuova matrice int indiceColonna; // iniziamo a scorrere le righe della matrice M for (int i = 0; i < M.length; i++) { // ci accertiamo che l’indice di riga non sia uguale al parametro fornito nel // metodo if (i != R) { // in tal caso inzializziamo l’indice per scorrere le colonne della matrice Q indiceColonna = 0; // avviamo un ciclo per le colonne della matrice M for (int j = 0; j < M[0].length; j++) // ci accertiamo che l’indice di colonna non sia uguale al parametro fornito nel // metodo if (j != C) { // se l’elemento ha soddisfatto i requisiti lo collochiamo nella matrice Q Q[indiceRiga][indiceColonna] = M[i][j]; // incrementiamo progressivamente gli indici di Q indiceColonna++; } indiceRiga++; } } return Q; } 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 = new int[][]{{6,4,11,9,12},{8,13,10,7,10},{14,21,17,6,4}, {8,10,13,6,7},{10,17,12,10,30}}; int[][] Q = eliminaUnaRigaEunaColonna (M,1,2); visualizzaMatrice (Q); } }
Commenti
20 Maggio 2015