// Calcolo del prodotto tra matrici #include #include #include using namespace std; #define NRA 2 #define NCA 3 #define NCB 4 int main() { double A[NRA][NCA]; double B[NCA][NCB]; double C[NRA][NCB]; fstream f; // Lettura delle matrici da file f.open("matrici.dat",ios::in); for (int i = 0; i < NRA; i++) { for (int j = 0; j < NCA; j++) { f >> A[i][j]; } } for (int i = 0; i < NCA; i++) { for (int j = 0; j < NCB; j++) { f >> B[i][j]; } } if ( f.fail() ) { cout << "Errore nell'apertura di 'matrici.dat' ==> Esco" << endl; return -1; } f.clear(); f.close(); // Scrittura delle matrici cout << "La matrice A e`:" << endl; for (int i = 0; i < NRA; i++) { for (int j = 0; j < NCA; j++) { cout << A[i][j] << " "; } cout << endl; } cout << "La matrice B e`:" << endl; for (int i = 0; i < NCA; i++) { for (int j = 0; j < NCB; j++) { cout << B[i][j] << " "; } cout << endl; } // Calcolo della matrice prodotto e sua scrittura for (int i = 0; i < NRA; i++) { for (int j = 0; j < NCB; j++) { C[i][j] = 0.; for (int k = 0; k < NCA; k++) { C[i][j] += A[i][k]*B[k][j]; } } } cout << "La matrice prodotto e`:" << endl; for (int i = 0; i < NRA; i++) { for (int j = 0; j < NCB; j++) { cout << C[i][j] << " "; } cout << endl; } return 0; }