Advertisement
sellmmaahh

popravni-2014-zad3-Proizvod Matrica

Jul 31st, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <stdexcept>
  4. #include <iomanip>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. vector<vector<double>> ProizvodMatrica (vector<vector<double>> m1, vector<vector<double>> m2)
  10. {
  11.     for (int i=0; i<m1.size(); i++) {
  12.         if (m1[0].size()!=m1[i].size())
  13.             throw domain_error ("Parametar nema formu matrice.");
  14.     }
  15.      for (int i=0; i<m2.size(); i++) {
  16.         if (m2[0].size()!=m2[i].size())
  17.             throw domain_error ("Parametar nema formu matrice.");
  18.     }
  19.     if (m1[0].size()!=m2.size())
  20.         throw domain_error ("Matrice nisu saglasne za mnozenje.");
  21.     vector<vector<double>> m3(m1.size(),vector<double> (m1[0].size()));
  22.     for (int i=0; i<m1.size(); i++)
  23.         for (int j=0; j<m2[0].size(); j++)
  24.         {
  25.             double suma{0};
  26.             for (int k=0; k<m2.size(); k++)
  27.                 suma+=m1[i][k]*m2[k][j];
  28.             m3[i][j]=suma;
  29.         }
  30.  
  31.     return m3;
  32. }
  33. int main () {
  34.     vector<vector<double>> m1{{1,2,3},{4,5,6},{7,8,9}};
  35.     for (int i=0; i<3; i++) {
  36.         for (int j=0; j<3; j++)
  37.             cout<<setw(8)<<m1[i][j];
  38.         cout<<endl;
  39.     }
  40.     cout<<endl;
  41.     vector<vector<double>> m2{{2,1,1},{3,6,4},{1,4,7}};
  42.      for (int i=0; i<3; i++) {
  43.         for (int j=0; j<3; j++)
  44.             cout<<setw(8)<<m2[i][j];
  45.         cout<<endl;
  46.     }
  47.     cout<<endl;
  48.     cout<<"Proizvod tih matrica: "<<endl;
  49.     try{
  50.         vector<vector<double>> m3{ProizvodMatrica(m1,m2)};
  51.         for (int i=0; i<m3.size(); i++) {
  52.             for (int j=0; j<m3[i].size(); j++)
  53.                 cout<<setw(8)<<m3[i][j];
  54.             cout<<endl;
  55.         }
  56.     }
  57.     catch (const char poruka []) {
  58.     cout<<poruka;
  59.     }
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement