Il blog sull'informatica

C++: Calcolare somma, media e diagonale principale di una matrice 3×3

Ecco un semplice programmino per calcolare somma, media e diagonale principale di una matrice 3×3 (vista come vettore bidimensionale):

#include <iostream.h>

void main()
{
 int v[3][3], somma, diagonale, i, j, n;
 float media;
 somma = 0;
 diagonale = 0;
 n = 0;
 for (i=0; i<3; i++) //inserisco gli elementi nella matrice
    for (j=0;j<3;j++)
  {
        cout << "inserisci l'elemento di posizione: " << i << j << endl;
        cin >> v[i][j];
  }
 for (i=0; i<3; i++) //calcolo somma e diagonale principale
    for (j=0;j<3;j++)
    {
        somma += v[i][j];
        if (i==j)
        diagonale += v[i][j];
    }
 for (i=0;i<3;i++)
    for(j=0;j<3;j++)
        n++;
 

cout << "La somma è: " << somma << endl;
media = ((float)somma)/n; //calcolo la media
cout << "La media è: " << media << endl;
cout << "La diagonale principale è: " << diagonale << endl;

}

Facciamo adesso alcune osservazioni. Come potete notare se non avessi utilizzato la conversione esplicita, cioè ((float)somma), nonostante la variabile media sia di tipo float, il risultato che avrei ottenuto sarebbe stato un int, poichè a monte vi è una somma di tipo intero. Avrei potuto ovviare a tale situazione semplicemente dichiarando la variabile somma non più come int ma come float:

#include <iostream.h>

void main()
{
 int v[3][3], diagonale, i, j, n;
 float media, somma;
 somma = 0;
 diagonale = 0;
 n = 0;
 for (i=0; i<3; i++) //inserisco gli elementi nella matrice
    for (j=0;j<3;j++)
  {
        cout << "inserisci l'elemento di posizione: " << i << j << endl;
        cin >> v[i][j];
  }
 for (i=0; i<3; i++) //calcolo somma e diagonale principale
    for (j=0;j<3;j++)
    {
        somma += v[i][j];
        if (i==j)
        diagonale += v[i][j];
    }
 for (i=0;i<3;i++)
    for(j=0;j<3;j++)
        n++;
 

cout << "La somma è: " << somma << endl;
media = somma/n; //calcolo la media
cout << "La media è: " << media << endl;
cout << "La diagonale principale è: " << diagonale << endl ;

}

A presto! 

C++: Calcolare somma, media e diagonale principale di una matrice 3×3ultima modifica: 2008-04-18T19:29:00+02:00da
Reposta per primo quest’articolo