Java: sottomatrice di dimensione massima estraibile

Tema 77

Scrivere un metodo estraiMatriceConIndiciInizialiFornitiDaiParametri che riceve in ingresso una matrice di interi M e due interi R e C e restituisce la sottomatrice di dimensione massima estraibile a partire dalla posizione (R,C).

Ad esempio, sia M la matrice così costituita

0 1 2 3 4
5 6 7 8 9
0 1 2 3 4
5 6 7 8 9
0 1 2 3 4

allora estraiMatriceConIndiciInizialiFornitiDaiParametri(M, 3, 2)

7 8 9 2 3 4

 public class tema77 { public static int[][] estraiMatriceConIndiciFornitiDaiParametri (int[][] M, int R, int C){ // effettuiamo un controllo per evitare che i parametri forniti siano maggiori // delle dimensioni della matrice if (R >= M.length || C >= M[0].length) return null; // determiniamo il numero di righe e di colonne della nuova matrice int numeroRighe = M.length - R; int numeroColonne = M[0].length - C; // dichiariamo la nuova matrice int[][] Q = new int[numeroRighe][numeroColonne]; // approntiamo dei cicli adeguati alle dimensioni della matrice Q for (int i = 0; i < Q.length; i++) for (int j = 0; j < Q[0].length; j++) // inseriamo nella matrice Q gli elementi a partire dale coordinate (R+i) e // (C+j) Q[i][j] = M[R+i][C+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 = new int[][] {{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {0, 1, 2, 3, 4}}; int[][] Q = estraiMatriceConIndiciFornitiDaiParametri (M,3,2); visualizzaMatrice (Q); } }     

Commenti

commenti