Advertisement
lucks232

Untitled

Mar 31st, 2022
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int calcMatriz(int matriz[100][100], int orden)
  7. {
  8.  
  9.     int submatriz[100][100];
  10.     int determinant = 0;
  11.    
  12.     if (orden == 2)
  13.     {
  14.         return (matriz[0][0] * matriz[1][1] - matriz[0][1] * matriz[1][0]);
  15.     }
  16.     else
  17.     {
  18.         for (int pos = 0; pos < orden; pos++) //Definimos la posición del valor que afectará (más tarde) al signo en la fórmula de la adjunta (-1)^pos
  19.         {
  20.             int subi = 0;
  21.             for (int i = 1; i < orden; i++)
  22.             {
  23.                 int subj = 0;
  24.                 for (int j = 0; j < orden; j++)
  25.                 {
  26.                     if (j == pos)
  27.                         continue;
  28.                     else
  29.                         submatriz[subi][subj] = matriz[i][j];
  30.                         subj++;
  31.                 }
  32.                 subi++;
  33.             }
  34.             determinant = determinant + pow(-1, pos) * matriz[0][pos] * calcMatriz(submatriz, orden - 1);
  35.         }
  36.     }
  37.     return determinant;
  38. }
  39.  
  40. int main()
  41. {
  42.     int orden, matriz[100][100];
  43.     cout << "Indique el orden de la matriz que desea calcular: ";
  44.     cin >> orden;
  45.     cout << "\n\nAhora introduzca los valores para dicha matriz:\n";
  46.    
  47.     for (int i = 0; i < orden; i++)
  48.     {
  49.         cout << "\nValores de la fila " << i + 1 << ":\n\n";
  50.         for (int j = 0; j < orden; j++) {
  51.             cin >> matriz[i][j];
  52.         }
  53.     }
  54.  
  55.     cout << "\nSu matriz tiene este aspecto: \n\n";
  56.    
  57.     for (int i = 0; i < orden; i++)
  58.     {
  59.         for (int j = 0; j < orden; j++)
  60.         {
  61.             cout << matriz[i][j] << " ";
  62.         }
  63.         cout << endl;
  64.     }
  65.  
  66.     cout << "\nEl determinante de su matriz es: " << calcMatriz(matriz, orden);
  67.  
  68.     cout << "\nQuiere calcular otro determinante? (Y o N): ";
  69.     char a;
  70.     cin >> a;
  71.  
  72.     if (a == 'Y' || a == 'y')
  73.     {
  74.         cout << "\n-------------------------------------------\n";
  75.         return(main());
  76.     }
  77.  
  78.     system("pause");
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement