Advertisement
avukas

2013/2014: I parcijalni 3.zad

Apr 10th, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<stdexcept>
  4. #include <iomanip>
  5.  
  6. typedef std::vector<std::vector<int>> Matrica;
  7.  
  8. Matrica KreirajMatricu(int br_redova, int br_kolona)
  9. {
  10.     return Matrica(br_redova, std::vector<int>(br_kolona));
  11. }
  12.  
  13. Matrica PomnoziMatrice(Matrica m1, Matrica m2)
  14. {
  15.     for (int i(0); i<m1.size(); i++)
  16.     {
  17.         for (int j(0); j<m1.size(); j++)
  18.         {
  19.             if (m1[i].size() != m1[j].size()) throw std::domain_error("Parametar nema formu matrice.");
  20.         }
  21.     }
  22.     for (int i(0); i<m2.size(); i++)
  23.     {
  24.         for (int j(0); j<m2.size(); j++)
  25.         {
  26.             if ((m2[i].size() != m2[j].size()) ) throw std::domain_error("Parametar nema formu matrice.");
  27.         }
  28.     }
  29.  
  30.     Matrica m3(KreirajMatricu(m1.size(), m2[0].size()));
  31.  
  32.     bool mogu_se_mnoziti(false);
  33.     if (m1[0].size() == m2.size())
  34.         mogu_se_mnoziti = true;
  35.     if (mogu_se_mnoziti == false ) throw std::domain_error("Matrice nisu saglasne za mnozenje.");
  36.     else
  37.     {
  38.         for (int i(0); i<m1.size(); i++)
  39.         {
  40.             for (int j(0); j<m2[0].size(); j++)
  41.             {
  42.                 int suma(0);
  43.                 for (int k(0); k<m2.size(); k++)
  44.                     suma+=m1[i][k] * m2[k][j];
  45.                 m3[i][j] = suma;
  46.             }
  47.         }
  48.     }
  49.     return m3;
  50. }
  51.  
  52. int main()
  53. {
  54.     try
  55.     {
  56.  
  57.         Matrica m1{{1,2,3}, {2,3,4},{1,2,3}};
  58.         Matrica m2{{1,0,3},{2,5, 1},{1,0,5}};
  59.  
  60.         Matrica m3 = PomnoziMatrice(m1,m2);
  61.         std::cout<<"Pomnozene matrice su: \n";
  62.  
  63.         for (int i(0); i<m3.size(); i++)
  64.         {
  65.             for (int j(0); j<m3[0].size(); j++)
  66.             {
  67.                 std::cout<<std::setw(8)<<m3[i][j];
  68.             }
  69.             std::cout<<std::endl;
  70.         }
  71.     }
  72.  
  73.     catch( std::domain_error e)
  74.     {
  75.         std::cout<<e.what();
  76.     }
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement