Páginas

martes, 1 de diciembre de 2015

determinante de una matriz

#include<iostream.h>
#include<stdlib.h>
#include<time.h>
int DETERMINANTE(int a[][100],int orden);//prototipo de la funcion det

main()
{
              int n;
   int mat[100][100];
   srand(time(NULL));
   cout<<"Ingrese el orden de la matriz:";cin>>n;


   for(int j=0;j<n;j++)
              for(int i=0;i<n;i++)
              mat[i][j]=rand()%11;

   cout<<"La matriz aleatoria es:"<<endl;
   for(int j=0;j<n;j++)
              {for(int i=0;i<n;i++)
               cout<<mat[i][j]<<" ";
       cout<<endl;
      }
   cout<<"Su determinante es: "<<DETERMINANTE(mat,n)<<endl;
   system("pause");
}

int DETERMINANTE(int a[][100],int orden)
{
   int det=0;
              int aux1[100][100];
   int aux2[100][100];


              if(orden==1)
              return a[0][0];

   for(int i=0;i<orden;i++)
     {
      if(i%2==0)
       {for(int y=0;y<orden;y++)
               for(int x=0;x<orden;x++)
              if(x<i)
                                             aux1[x][y]=a[x][y+1];
            else
               aux1[x][y]=a[x+1][y+1];

               det=det+a[i][0]*DETERMINANTE(aux1,orden-1);
       }
      else
       {for(int y=0;y<orden;y++)
               for(int x=0;x<orden;x++)
              if(x<i)
                                             aux2[x][y]=a[x][y+1];
            else
               aux2[x][y]=a[x+1][y+1];

              det=det-a[i][0]*DETERMINANTE(aux2,orden-1);
       }
      }
   return det;

}

No hay comentarios:

Publicar un comentario