Advertisement
sellmmaahh

zad-vektori-predavanja

Mar 12th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <iomanip>
  4.  
  5. typedef std::vector <std::vector<double>> Matrica;
  6.  
  7. Matrica Kreiraj_matricu(int br_redova, int br_kolona)
  8.    {
  9.     return Matrica(br_redova, std::vector <double> (br_kolona));
  10.    }
  11.  
  12. int br_redova (Matrica m)
  13.   {
  14.    return m.size();
  15.   }
  16.  
  17. int br_kolona (Matrica m)
  18. {
  19.     return m[0].size();
  20. }
  21.  
  22. Matrica Unesi_matricu (int br_redova, int br_kolona)
  23. {
  24.     auto m(Kreiraj_matricu(br_redova, br_kolona));
  25.     for (int i(0); i<br_redova; i++)
  26.         for (int j(0); j<br_kolona; j++)
  27.         {   std::cout<<"Element ("<<i+1<<","<<j+1<<") : ";
  28.             std::cin>>m[i][j];
  29.         }
  30.         return m;
  31. }
  32.  
  33. void Ispisi_matricu (Matrica m)
  34. {
  35.     for (int i(0); i<br_redova(m); i++)
  36.         for (int j(0); j<br_kolona(m); j++)
  37.             {
  38.                 std::cout<<std::setw(10)<<m[i][j];
  39.                 std::cout<<std::endl;
  40.             }
  41. }
  42.  
  43. bool Mogu_se_sabirati(Matrica m1, Matrica m2)
  44. {
  45.     return  (br_redova(m1)==br_redova(m2)) && (br_kolona(m1)==br_kolona(m2));
  46.  
  47. }
  48.  
  49. Matrica Saberi_matrice(Matrica m1, Matrica m2)
  50. {
  51.     auto m3(Kreiraj_matricu(br_redova(m1), br_kolona(m1)));
  52.     for (int i(0); i<br_redova(m1); i++)
  53.         for (int j(0); j<br_kolona(m1); j++)
  54.     {
  55.         m3[i][j]=m1[i][j]+m2[i][j];
  56.     }
  57.     return m3;
  58.  
  59. }
  60.  
  61. bool Mogu_se_mnoziti (Matrica m1, Matrica m2)
  62. {
  63.     return br_kolona(m1)==br_redova(m2);
  64. }
  65.  
  66. Matrica Pomnozi_matrice(Matrica m1, Matrica m2)
  67. {
  68.     auto m3 (Kreiraj_matricu(br_redova(m1), br_kolona(m2)));
  69.     for (int i(0); i<br_redova(m1); i++)
  70.         for (int j(0); j<br_kolona(m2); j++)
  71.     {
  72.         double suma(0);
  73.         for (int k(0); k<br_redova(m2); k++)
  74.             suma+=m1[i][k]+m2[k][j];
  75.         m3[i][j]=suma;
  76.     }
  77.     return m3;
  78. }
  79.  
  80. int main ()
  81. {
  82.     int m1, n1;
  83.     std::cout<<"Unesi dimenzije matrice A: ";
  84.         std::cin>>m1>>n1;
  85.     std::cout<<"Unesi elemente matrice A: "<<std::endl;
  86.         auto A (Unesi_matricu(m1,n1));
  87.     int m2, n2;
  88.     std::cout<<"Unesi dimenzije matrice B: ";
  89.         std::cin>>m2>>n2;
  90.     std::cout<<"Unesi elemente matrice B: "<<std::endl;
  91.         auto B(Unesi_matricu(m2, n2));
  92.  
  93.     if (Mogu_se_sabirati(A,B))
  94.         {
  95.             std::cout<<"Matrica A+B: "<<std::endl;
  96.             Ispisi_matricu(Saberi_matrice(A,B));
  97.         }
  98.     else std::cout<<"Matrice nisu saglasne za sabiranje. "<<std::endl;
  99.  
  100.     if (Mogu_se_mnoziti(A,B))
  101.     {
  102.         std::cout<<"Matrica A*B: "<<std::endl;
  103.         Ispisi_matricu(Pomnozi_matrice(A,B));
  104.     }
  105.     else std::cout<<"Matrice nisu saglasne za mnozenje. "<<std::endl;
  106.     return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement