Linguaggio Java: vettore prodotti delle somme riga e colonna

Tema 65

Scrivere un metodo creaArrayMoltiplicandoSommaRigaConSommaColonna che riceve una matrice quadrata di interi M e restituisce un vettore V i cui elementi in posizione i-esima sono ottenuti effettuando prima la somma degli elementi della riga i-esima della matrice M, poi la somma degli elementi della colonna i-esima della stessa matrice e infine moltiplicando i due risultati ottenuti.

Ad esempio, sia M la matrice così costituita

1 0 2 0
0 3 0 1
2 3 4 5
0 3 0 2

allora estraiArrayMoltiplicandoSommaRigaConSommaColonna (M) darà

9 36 84 40

 public class tema65{ public static int[] estraiArrayMoltiplicandoSommaRigaConSommaColonna (int[][] M) { // prepariamo un array di dimensione pari alla dimensione della matrice M int [] V = new int[M.length]; // creiamo un ciclo per scorrere la matrice for (int i = 0; i < M.length; i++) { // posizioniamo prorpio in questo punto l’inizializzazione della sommaRiga e // della sommaColonna // in modo tale che a ogni iterazione del ciclo i due contenitori vengano // svuotati dei risultati precedenti int sommaRiga = 0; int sommaColonna = 0; for (int j = 0; j < M.length; j++) { sommaRiga += M[i][j]; sommaColonna += M[j][i]; } // inseriamo nell’i-esima posizione dell’array il risultato del prodotto sulle // due somme V[i] = sommaRiga * sommaColonna; } return V; }  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 = { {1, 0, 2, 0}, {0, 3, 0, 1}, {2, 3, 4, 5}, {0, 3, 0, 2}}; int [] V = estraiArrayMoltiplicandoSommaRigaConSommaColonna (M); visualizzaArray (V); } }     

Commenti

commenti