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