Ciao a tutti.
Devo fare un programma con i vector che permetta di moltiplicare due matrici di qualsiasi taglia (dopo aver verificato che la taglia è compatibile per la moltiplicazione).
Questo è il mio programma; compila ma non funziona...
Credo di non aver capito bene come funzionano i vector di vector (i vettori a una dimensione li so usare!).
Ecco il mio programma:
codice:
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
using std::cerr;
#include<vector>
using std::vector;
// ======================================================================
typedef vector< vector<double> > Matrix;
// ======================================================================
Matrix read_Matrix()
{
int l(0), c(0);
double d(0);
Matrix M;
cout << "Matrix dimension: ";
cin >> l >> c;
for(int i(0); i < l; i++)
{
for(int j(0); j < c; j++)
{
cout << "M_" << i << "_" << j << ": ";
cin >> d;
M[i][j] = d;
}
}
return M;
}
// ======================================================================
Matrix multiply_Matrix(const Matrix& M1, const Matrix& M2)
{
Matrix M;
if(M1[0].size() != M2.size())
{
cerr << "Error: impossible moltiplication." << endl;
return M;
}
for(int i(0); i < M1[0].size(); i++)
{
for(int j(0); j < M1.size(); j++)
{
M[i][j] = M1[j][i] * M2[i][j];
}
}
return M;
}
// ======================================================================
void print_Matrix(const Matrix& M)
{
cout << "Matrix:" << endl;
for(int i(0); i < M[0].size(); i++)
{
for(int j(0); j < M.size(); j++)
{
cout << M[i][j];
}
cout << endl;
}
}
// ======================================================================
int main()
{
Matrix M1, M2, M;
M1 = read_Matrix();
M2 = read_Matrix();
M = multiply_Matrix(M1, M2);
print_Matrix(M1);
return 0;
}
Avrei bisogno di un aiuto, perché ho un test di informatica giovedì... =S.
Grazie!
Ps: Non sono ancora in grado di utilizzare gli iteratori e non potrò utilizzarli durante il test.