Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <vector>
- typedef std::vector<std::vector<double>> Matrica;
- Matrica KreirajMatricu(int br_redova, int br_kolona)
- {
- return Matrica(br_redova, std::vector<double>(br_kolona));
- }
- int BrojRedova(Matrica m)
- {
- return m.size();
- }
- int BrojKolona(Matrica m)
- {
- return m[0].size();
- }
- Matrica UnesiMatricu(int br_redova, int br_kolona)
- {
- auto m(KreirajMatricu(br_redova, br_kolona));
- for(int i = 0; i < br_redova; i++)
- for(int j = 0; j < br_kolona; j++) {
- std::cout << "Element (" << i + 1 << "," << j + 1 << "): ";
- std::cin >> m[i][j];
- }
- return m;
- }
- void IspisiMatricu(Matrica m)
- {
- for(int i = 0; i < BrojRedova(m); i++)
- {
- for(int j = 0; j < BrojKolona(m); j++)
- std::cout << std::setw(10) << m[i][j];
- std::cout << std::endl;
- }
- }
- Matrica SaberiMatrice(Matrica m1, Matrica m2)
- {
- if((BrojRedova(m1)!=BrojRedova(m2))
- && (BrojKolona(m1)!=BrojKolona(m2))) throw "Ne mogu se sabirati!";
- auto m3(KreirajMatricu(BrojRedova(m1), BrojKolona(m1)));
- for(int i = 0; i < BrojRedova(m1); i++)
- for(int j = 0; j < BrojKolona(m1); j++)
- m3[i][j] = m1[i][j] + m2[i][j];
- return m3;
- }
- Matrica PomnoziMatrice(Matrica m1, Matrica m2)
- {
- if(BrojKolona(m1)!=BrojRedova(m2)) throw "Ne mogu se pomnoziti!";
- auto m3(KreirajMatricu(BrojRedova(m1), BrojKolona(m2)));
- for(int i = 0; i < BrojRedova(m1); i++)
- for(int j = 0; j < BrojKolona(m2); j++)
- {
- double suma(0);
- for(int k = 0; k < BrojRedova(m2); k++)
- suma += m1[i][k] * m2[k][j];
- m3[i][j] = suma;
- }
- return m3;
- }
- int main() {
- int m1, n1;
- std::cout << "Unesi dimenzije matrice A: ";
- std::cin >> m1 >> n1;
- std::cout << "Unesi elemente matrice A:\n";
- auto A(UnesiMatricu(m1, n1));
- int m2, n2;
- std::cout << "Unesi dimenzije matrice B: ";
- std::cin >> m2 >> n2;
- std::cout << "Unesi elemente matrice B:\n";
- auto B(UnesiMatricu(m2, n2));
- std::cout << "Matrica A:\n";
- IspisiMatricu(A);
- std::cout << "Matrica B:\n";
- IspisiMatricu(B);
- try{
- std::cout << "Matrica A+B:\n";
- IspisiMatricu(SaberiMatrice(A, B));
- }
- catch(const char poruka[])
- {
- std:: cout<< poruka<< std:: endl;
- }
- try{
- std::cout << "Matrica A*B:\n";
- IspisiMatricu(PomnoziMatrice(A, B));
- }
- catch(const char poruka[])
- {
- std:: cout<< poruka<< std:: endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement