Advertisement
Guest User

Matrix

a guest
Apr 22nd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. /*
  8.  
  9. Определитель матрицы A=[n×n] — это алгебраическая сумма n! слагаемых, составленных следующим образом.
  10.  
  11. */
  12.  
  13.  
  14. int **A, *B;
  15. ifstream devInput("H:/C Projects/Lab13/det_tests.txt", ios_base::binary);
  16. ifstream invInput("H:/C Projects/Lab13/inv_tests.txt", ios_base::binary);
  17.  
  18. float eps = 0.001;
  19.  
  20. void determinant(int **a, int r) {
  21.     int i = 0, n = r, p = 1, v, j, z;
  22.     while (i < n) {
  23.         // выбор ведущего элемента
  24.         v = i;
  25.         for (j = i + 1; j < n; j++)
  26.             if (abs(a[j][i]) > abs(a[v][i])) v = j;
  27.         if (abs(a[v][i]) < eps) r = i;
  28.         else {
  29.             // перестановка строк
  30.             if (v != i) {
  31.                 p -= p;
  32.                 for (j = i; j <= n; j++) {
  33.                     z = a[i][j];
  34.                     a[i][j] = a[v][j];
  35.                     a[v][j] = z;
  36.                 }
  37.             }
  38.             // вычитание строк матрицы
  39.  
  40.             i += 1;
  41.         }
  42.     }
  43.     // вычисление определителя
  44. }
  45.  
  46.  
  47.  
  48.  
  49. int main()
  50. {
  51.     devInput.seekg(8);
  52.     int r, c;       //amount of rows and collumns
  53.     devInput >> r;
  54.     c = r;
  55.     // выделение памяти под матрицу
  56.     A = new int*[r];    // задаём указатель на количество строк
  57.     for (int i = 0; i < r; i++) {
  58.         A[i] = new int[c];
  59.     }
  60.  
  61.     // считываем матрицу
  62.     for (int i = 0; i < r; i++) {
  63.         for (int j = 0; j < c; j++) {
  64.             devInput >> A[i][j];
  65.         }
  66.     }
  67.    
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement