Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include <iomanip>
  5. #include "Matrix.h"
  6.  
  7. using namespace std;
  8.  
  9. template<typename T>
  10. void generateMatrix(Matrix<T>& matrix)
  11. {
  12.     for (int i = 0; i < matrix.size1(); i++)
  13.     {
  14.         for (int j = 0; j < matrix.size2(); j++)
  15.         {
  16.             matrix[i][j] = 1 + rand() % 9;
  17.         }
  18.     }
  19. }
  20.  
  21. template<typename T>
  22. void showMatrix(Matrix<T> matrix)
  23. {
  24.     cout << "Initial matrix" << endl;
  25.     for (int i = 0; i < matrix.size1(); i++)
  26.     {
  27.         for (int j = 0; j < matrix.size2(); j++)
  28.         {
  29.             cout << setw(5) << setprecision(2) << matrix[i][j] << ' ';
  30.         }
  31.         cout << endl;
  32.     }
  33. }
  34.  
  35. template<typename T>
  36. double det(Matrix<T> matrix)
  37. {
  38.     cout << matrix[0][0] << endl;
  39.     return 0;
  40.     if(matrix.size1() == 2)
  41.     {
  42.         return (matrix[0][0] * matrix[1][1] - matrix[1][0] * matrix[0][1]);
  43.     }
  44.     else
  45.     {
  46.         double res = 0;
  47.         for (int i = 0 ; i < matrix.size1(); i++)
  48.         {
  49.             Matrix<double> minor(matrix.size1() - 1, matrix.size2() - 1);
  50.             for (int j = 0; j < minor.size1(); j++)
  51.             {
  52.                 for (int k = 0; k < minor.size2(); k++)
  53.                 {
  54.                     k >= i ? minor[j][k] = matrix[j + 1][k + 1] : minor[j][k] = matrix[j + 1][k];
  55.                 }
  56.             }
  57.  
  58.             i % 2 == 0 ? res += det(minor) * matrix[0][i] : res -= det(minor) * matrix[0][i];
  59.         }
  60.         return res;
  61.     }
  62. }
  63.  
  64. int main()
  65. {
  66.     srand(time(0));
  67.  
  68.     int n;
  69.     cout << "Input matrix dismension ";
  70.     cin >> n;
  71.  
  72.     Matrix<double> matrix(n, n);
  73.     generateMatrix(matrix);
  74.     showMatrix(matrix);
  75.     cout << matrix.size1() << ' ' << matrix.size2() << endl;
  76.  
  77.     cout << det(matrix);
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement