Java: somme righe matrice triangolare superiore

Tema 84

Scrivere un metodo creaArrayConSommeRigheDellaTriangolareSuperiore che riceve in ingresso una matrice quadrata M e restituisce un array in cui l’i-esima posizione conterrà la somma degli elementi appartenenti, di volta in volta, a una riga della parte triangolare superiore della matrice.

Ad esempio, sia M la matrice così costituita

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

allora creaArrayConSommeRigheDellaTriangolareSuperiore (M) darà

45 30 14 3 4

 public class tema84{ public static int[] creaArrayConSommeRigheDellaTriangolareSuperiore (int[][] M){ // approntiamo un array con dimensione pari alla dimensione della matrice M int[] arrayFinale = new int[M.length]; // inizializziamo un indice che ci servirà per indirizzare opportunamente la // ricerca degli elementi int indice = 0; // cominciamo a scorrere la matrice riga per riga for (int i = 0; i < M.length; i++){ // prepariamo un contenitore di tipo intero in cui memorizzare la somma degli // elementi di una riga // posizionandolo a questo punto del programma facciamo in modo che si svuoti // alla fine di ogni ciclo int somma = 0; // l’indice delle colonne partirà da zero e s’incrementerà gradualmente // all’aumentare delle celle dell’array for (int j = indice; j < M.length; j++){ // sommiamo gli elementi di nostro interesse somma += M[i][j];} // collochiamo nell’array il risultato della somma arrayFinale[indice] = somma; // incrementiamo l’indice in modo da raggiungere la successiva colonna di M e la // successiva cella dell’array indice++;} return arrayFinale; }  public static void visualizzaArray (int[] V) { for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); }  public static void main(String[] args){ int[][] M = {{3,18,15,7,2}, {1,9,11,4,6}, {7,2,6,3,5}, {5,1,25,2,1}, {3,2,33,4,4}}; visualizzaArray (creaArrayConSommeRigheDellaTriangolareSuperiore (M)); } }     

Commenti

commenti