Java: sottomatrice di matrice privata della cornice

Tema 95

Scrivere un metodo estraiMatriceEscludendoLaCornice che riceve in ingresso una matrice di interi M e restituisce la sottomatrice ottenuta escludendo la prima e l’ultima riga e la prima e l’ultima colonna, cioè escludendo la cornice di M.

Ad esempio, sia M la matrice così costituita

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

allora estraiMatriceEscludendoLaCornice (M) darà

9 11 4
2 6 3
1 25 2

 public class tema95{ public static int [][] estraiMatriceEscludendoLaCornice (int [][] M) { // approntiamo una matrice che avrà dimensioni uguali alle dimensione di M ma // diminuite di 2 int [][] Q = new int[M.length-2][M[0].length-2]; // scorriamo la matrice M riga per riga, partendo dalla seconda riga for (int i = 1; i < M.length-1; i++){ // anche le colonne saranno esaminate partendo dalla seconda colonna for (int j = 1; j < M[0].length-1; j++) // trasferiamo nella matrice Q gli elementi che soddisfano il requisito // servendoci dell’indice di riga // appositamente creato e di un opportuno calcolo per l’indice di colonna Q[i-1][j-1] = M[i][j]; } 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 = {{3,18,15,7,2}, {1,9,11,4,1}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; visualizzaMatrice (estraiMatriceEscludendoLaCornice (M)); } }     

Commenti

commenti