Java: estrazione di sottomatrice di dimensioni date

Tema 78

Scrivere un metodo estraiMatriceDalPrimoElementoAquelloConIndiciFornitiDaiParamentri che riceve in ingresso una matrice di interi M e due interi R e C e restituisce la sottomatrice a partire dall’elemento in posizione (0,0) fino all’elemento in posizione (R,C).

Ad esempio, sia M la matrice così costituita

0 1 2 3 4
5 6 7 8 9
4 5 6 7 8
9 10 11 12 0
7 6 5 4 3

allora estraiMatriceDalPrimoElementoAquelloConIndiciiFornitiDaiParamentri (M,1,2) darà

0 1 2
5 6 7

 public class tema78 { public static int[][]estraiMatriceDalPrimoElementoAquelloConIndiciFornitiDaiParamentri (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 = R + 1; int numeroColonne = C + 1; // 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++) Q[i][j] = 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 = new int[][]{{0,1,2,3,4,}, {5,6,7,8,9}, {4,5,6,7,8}, {9,10,11,12,0}, {7,6,5,4,3}}; int[][] Q = estraiMatriceDalPrimoElementoAquelloConIndiciiFornitiDaiParamentri (M,1,2); visualizzaMatrice (Q); } }     

Commenti

commenti