Linguaggio Java: ricerca elementi positivi della diagolanle secondaria di una matrice

Tema 57

Scrivere un metodo creaArrayConPositiviDiagonaleSecondaria che riceve in ingresso una matrice quadrata M e restituisce un vettore contenente gli elementi positivi presenti sulla diagonale secondaria.

Ad esempio, sia M la matrice così costituita

1 2 3
2 -6 4
8 4 5

allora estraiPositiviDaDiagonaleSecondaria (M) darà

3 8

 public class tema57 { public static int[] estraiPositiviDaDiagonaleSecondaria (int[][] M){ // verifichiamo che la matrice sia quadrata if (M.length != M[0].length) return null; // dichiariamo l’array che conterrà gli elementi finali int[] A; // approntiamo un array in cui faremo confluire inizialmente gli elementi che // soddisfano il requisito // assegnamo a questo array la dimensione M.length che potrebbe avere nel caso // in cui tutti gli elementi // soddisfino il requisito int[] V = new int[M.length]; // prepariamo un indice con cui scorrere l’array int indice = 0; for (int i = 0; i < M.length; i++) if (M[i][M.length-1-i] > 0){ V[indice] = M[i][M.length-1-i]; indice++; } // se non vengono trovati elementi non nulli, il risultato sarà null if (indice == 0) return null; else { // altrimenti assegnamo all’array A la giusta dimensione e trasferiamo al suo // interno gli elementi A = new int[indice]; for (int i = 0; i < A.length; i++) A[i] = V[i]; } return A; }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = new int[][]{{1,2,3}, {2,-6,4}, {8,4,5}}; int[] V = estraiPositiviDaDiagonaleSecondaria (M); if (V != null){ for (int i = 0; i < V.length; i++) System.out.println(V[i]+" ");} } }     

Commenti

commenti