Java: elementi matrice al di sopra della diagonale

Tema 85

Scrivere un metodo creaArrayConElementiAlDiSopraDiagonalePrincipale che riceve in ingresso una matrice quadrata di interi M e restituisce un array V contenente tutti gli elementi appartenenti al triangolo al di sopra della diagonale principale.

Ad esempio, sia M la matrice così costituita

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

allora creaArrayConElementiAlDiSopraDiagonalePrincipale (M) darà

18 15 7 2 11 4 1 3 5 1

 public class tema85 { public static int[] creaArrayConElementiAlDiSopraDiagonalePrincipale (int[][] M){ // la dimensione dell’array sarà data dal seguente calcolo int dim = (M.length * M.length - M.length) / 2; int[] A = new int[dim]; // prepariamo un indice per l’array int indiceArray = 0; // prepariamo un indice per scorrere in maniera opportuna le colonne della // matrice // inizialmente è ovvio che si comincerà con la seconda colonna cioè di indice 1 int indiceColonna = 1; for (int i = 0; i < M.length; i++){ for (int j = indiceColonna; j < M.length; j++){ A[indiceArray] = M[i][j]; // incrementiamo l’indice dell’array in modo da posizionarci nella successiva // cella indiceArray++;} // incrementiamo l’indiceColonna in modo da far partire le colonne dalla // posizione successiva // a ogni nuovo ciclo indiceColonna++;} return A; }  public static void visualizzaArray (int[] V) { for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); }  /* Applicazione di prova */  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,1}, {11,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; visualizzaArray (creaArrayConElementiAlDiSopraDiagonalePrincipale (M)); } }     

Commenti

commenti