Páginas

martes, 1 de diciembre de 2015

determinante de una matriz

#include <iostream> #include <math.h> using namespace std; const int n=2, m=2; int i, j, SUMA, PROM, men , M; int Matriz[n][m], T[n][m], A[n][m], B[n][m], C[n][m]; // DECLARACION int LeerMatriz(); int SumaElementos(); int ImprimirElementos(); int MatrizIdentidad(); int MatrizTranspuesta(); int SumaMatrices(); int ElementosCentrales(); int Promedio(), MayMen(); int main( ) { int Opcion; do { cout<<"***** MENU ************* \n "; cout<<"1) LEER UNA MATRIZ \n"; cout<<" 2) SUMA DE ELEMENTOS \n"; cout<<" 3) IMPRIMIR LOS ELEMENTOS \n"; cout<<" 4) MATRIZ IDENTIDAD \n "; cout<<" 5) MATRIZ TRANSPUESTA \n"; cout<<" 6) SUMA DE MATRICES \n"; cout<<" 7) ELEMENTOS CENTRALES MATRICES \n"; cout<<" 8) PROMEDIO DE ELEMENTOS DE LA MATRIZ \n"; cout<<" 9) CONTAR LOS MAYORES Y MENORES DE ELEMENTOS DE LA MATRIZ \n \n"; cout<<"10) DETERMINANTE" cout<<" *********************** \n\n"; cout<<" Ingrese una Opcion: "; cin>> Opcion; // swhitch switch (Opcion) { //Inicio Switch case 1: { LeerMatriz(); } break; case 2: { SumaElementos(); } break; case 3: { ImprimirElementos(); } break; case 4: { MatrizIdentidad(); // INVOCACION } break; case 5: { MatrizTranspuesta(); // INVOCACION }break; case 6: { SumaMatrices(); // INVOCACION }break; case 7: { ElementosCentrales(); // INVOCACION }break; case 8: { Promedio(); // INVOCACION }break; case 9: { MayMen(); // INVOCACION }break; case 10: { Promedio(); // INVOCACION }break; } // Fin Switch }while(Opcion !=0); // FIN DEL WHILE cout<<endl; system ("pause"); return 0; } // FIN DEL PROGRAMA // DESARROLLO DE LAS FUNCIONES int LeerMatriz() { cout<<"***** LEER UNA MATRIZ **** \n"; cout<<"Llenar datos a la matriz \n\n"; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { cout<<"Matriz["<<i<<"]["<<j<<"] = "; cin>>Matriz[i][j]; } cout<<"************************** \n\n"; } int SumaElementos() { cout<<"***** SUMAR LOS ELEMENTOS DE UNA MATRIZ **** \n"; SUMA=0; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { SUMA = SUMA + Matriz[i][j]; } cout<<"La suma de los elementos de la Matriz es: "<<SUMA<<endl; cout<<"************************** \n\n"; } int ImprimirElementos() { cout<<"***** IMPRIMIR LOS ELEMENTOS DE LA MATRIZ **** \n"; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { cout<<"Matriz["<<i<<"]["<<j<<"] = "<<Matriz[i][j]<<endl; } cout<<"********************************************** \n\n"; } int MatrizIdentidad() { cout<<"***** CONVIERTE A UNA MATRIZ IDENTIDAD **** \n"; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { if(i!=j) Matriz[i][j] = Matriz[i][j] * 0; if (i==j) Matriz[i][j] = Matriz[i][j] / Matriz[i][j]; } cout<<"********************************************** \n\n"; } int MatrizTranspuesta() { cout<<"***** CONVIERTE A UNA MATRIZ IDENTIDAD **** \n"; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { if(i!=j) T[i][j] = Matriz[j][i]; } // IMPRESION DE LOS ELEMENTOS DE LA MATRIZ for (i=1; i<=n; i++) for (j=1; j<=m; j++) { cout<<"T["<<i<<"]["<<j<<"] = "<< T[i][j]<<endl; } cout<<"********************************************** \n\n"; } int SumaMatrices() { cout<<"***** SUMA DE MATRICES ******************** \n"; cout<<"Lectura de la Matriz A[n][m] \n "; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { cout<<"A["<<i<<"]["<<j<<"] = "; cin>>A[i][j]; } cout<<"Lectura de la Matriz B[n][m] \n "; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { cout<<"B["<<i<<"]["<<j<<"] = "; cin>>B[i][j]; } // PROCESO for (i=1; i<=n; i++) for (j=1; j<=m; j++) { C[i][j] = A[i][j] + B[i][j]; } // RESULTADO cout<<"LA SUMA DE LAS MATRICES A[n][m]+B[n][m] ES: \n\n"; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { cout<<"C["<<i<<"]["<<j<<"] = "<< C[i][j]<<endl; } cout<<"********************************************** \n\n"; } int ElementosCentrales() { cout<<"*********ELEMENTOS CENTRALES************************* \n\n"; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { if(i==j) cout<<"Matriz["<<i<<"]["<<j<<"] = "<< Matriz[i][j]<<endl; } cout<<"********************************************** \n\n"; } int Promedio() { cout<<"********* PROMEDIO DE LOS ELEMENTOS ************************* \n\n"; SUMA=0; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { SUMA = SUMA + Matriz[i][j]; } PROM = SUMA/(n*m); cout<<"El promedio de la Matriz es: "<<PROM <<endl; cout<<"************************************************************* \n\n"; } int MayMen() { M=0; men=0; for (i=1; i<=n; i++) for (j=1; j<=m; j++) { if (Matriz[i][j]>PROM) M = M + 1; if (Matriz[i][j]<PROM) men = men + 1; } cout<<"Tiene "<< M << "Valores Mayores al promedio de"<< PROM <<endl; cout<<"Tiene "<< men << "Valores Menores al promedio de"<< PROM <<endl; } int determinante() { cout<<"********* determinante de una matriz ************** \n\n"; double det(double **m, int b) { double determinante = 0, aux = 0; int c; if(b==2) return m[0][0]*m[1][1] - m[1][0]*m[0][1]; else { for(int j=0; j < b; j++) { double **menor=(double **)malloc(sizeof(double)*(b-1)); for(int h=0; h < (b-1); h++) menor[h] = (double *)malloc(sizeof(double)*(b-1)); for(int k=1; k < b; k++) { c = 0; for(int l=0; l < b; l++) { if(l!=j) { menor[k-1][c] = m[k][l]; c++; } } } aux = pow(-1, 2+j)*m[0][j]*det(menor, b-1); determinante += aux; for(int q = 0; q < (b-1); q++) free(menor[q]); free(menor); } return determinante; } } }

matrices,,

#include <iostream>
#include <math.h>
using namespace std;

const int n=2, m=2;
int i, j, SUMA, PROM, men , M;
int Matriz[n][m], T[n][m], A[n][m], B[n][m], C[n][m];   // DECLARACION
int LeerMatriz();
int SumaElementos();
int ImprimirElementos();
int MatrizIdentidad();
int MatrizTranspuesta(); 
int SumaMatrices();
int ElementosCentrales();
int Promedio(), MayMen();

int main( )
{
  int Opcion;  
  do
  {
  cout<<"***** MENU ************* \n ";
  cout<<"1) LEER UNA MATRIZ   \n";
  cout<<" 2) SUMA DE ELEMENTOS  \n";  
  cout<<" 3) IMPRIMIR LOS ELEMENTOS   \n";  
  cout<<" 4) MATRIZ IDENTIDAD \n  ";    
  cout<<" 5) MATRIZ TRANSPUESTA \n";      
  cout<<" 6) SUMA DE MATRICES  \n";        
  cout<<" 7) ELEMENTOS CENTRALES MATRICES \n";          
  cout<<" 8) PROMEDIO DE ELEMENTOS DE LA MATRIZ  \n";          
  cout<<" 9) CONTAR LOS MAYORES Y MENORES DE ELEMENTOS DE LA MATRIZ \n \n";          
  cout<<" *********************** \n\n";
  cout<<"       Ingrese una Opcion: "; cin>> Opcion;
 // swhitch
 switch (Opcion)
  { //Inicio Switch
    case 1:
     {
      LeerMatriz();     
     }    
     break;
    case 2:
     {
      SumaElementos();
     }    
     break;
     
   case 3:
     {
      ImprimirElementos();     
     }    
     break;

   case 4:
     {
      MatrizIdentidad();     // INVOCACION
     }    
     break;
   case 5:
     {
      MatrizTranspuesta();   // INVOCACION
     }break;
   case 6:
     {
      SumaMatrices();   // INVOCACION
     }break;
   case 7:
     {
      ElementosCentrales();   // INVOCACION
     }break;
   case 8:
     {
      Promedio();   // INVOCACION
     }break;
    case 9:
     {
      MayMen();   // INVOCACION
     }break;
          
  } // Fin Switch
}while(Opcion !=0); // FIN DEL WHILE

 cout<<endl;
 system ("pause");
 return 0;
} // FIN DEL PROGRAMA

// DESARROLLO DE LAS FUNCIONES
int LeerMatriz()
{
 cout<<"***** LEER UNA MATRIZ **** \n";   
 cout<<"Llenar datos a la matriz \n\n";
 for (i=1; i<=n; i++)
  for (j=1; j<=m; j++)      
   {
    cout<<"Matriz["<<i<<"]["<<j<<"] = "; cin>>Matriz[i][j];
   }
 cout<<"************************** \n\n";    
}

int SumaElementos()
{
 cout<<"***** SUMAR LOS ELEMENTOS DE UNA MATRIZ **** \n";   
 SUMA=0;
 for (i=1; i<=n; i++)
  for (j=1; j<=m; j++)      
   {
    SUMA = SUMA + Matriz[i][j];
   }
  cout<<"La suma de los elementos de la Matriz es: "<<SUMA<<endl;
  cout<<"************************** \n\n";    
}

int ImprimirElementos()
{
 cout<<"***** IMPRIMIR LOS ELEMENTOS DE LA MATRIZ **** \n";   
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
  cout<<"Matriz["<<i<<"]["<<j<<"] = "<<Matriz[i][j]<<endl;
  }
 cout<<"********************************************** \n\n";         
}

int MatrizIdentidad()
{
 cout<<"***** CONVIERTE A UNA MATRIZ IDENTIDAD **** \n";   
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
    if(i!=j)
     Matriz[i][j] = Matriz[i][j] * 0;
    if (i==j)
     Matriz[i][j] = Matriz[i][j] / Matriz[i][j];
  }
 cout<<"********************************************** \n\n";         
}

int MatrizTranspuesta()
{
 cout<<"***** CONVIERTE A UNA MATRIZ IDENTIDAD **** \n";   
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
    if(i!=j)
     T[i][j] = Matriz[j][i];
  }
  // IMPRESION DE LOS ELEMENTOS DE LA MATRIZ
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
  cout<<"T["<<i<<"]["<<j<<"] = "<< T[i][j]<<endl;
  }
 cout<<"********************************************** \n\n";         
}

int SumaMatrices()
{
 cout<<"***** SUMA DE MATRICES ******************** \n";   
 cout<<"Lectura de la Matriz A[n][m] \n ";
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
   cout<<"A["<<i<<"]["<<j<<"] = "; cin>>A[i][j];
  }
 cout<<"Lectura de la Matriz B[n][m] \n ";
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
   cout<<"B["<<i<<"]["<<j<<"] = "; cin>>B[i][j];
  }
  // PROCESO
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
   C[i][j] = A[i][j] + B[i][j];
  }
  // RESULTADO
  cout<<"LA SUMA DE LAS MATRICES A[n][m]+B[n][m] ES: \n\n";
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
  cout<<"C["<<i<<"]["<<j<<"] = "<< C[i][j]<<endl;
  }  
 cout<<"********************************************** \n\n";         
}

int ElementosCentrales()
{
 cout<<"*********ELEMENTOS CENTRALES************************* \n\n";         

 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
   if(i==j)
    cout<<"Matriz["<<i<<"]["<<j<<"] = "<< Matriz[i][j]<<endl;
  }  
 cout<<"********************************************** \n\n";         

}

int Promedio()
{
 cout<<"********* PROMEDIO DE LOS ELEMENTOS ************************* \n\n";         
 SUMA=0;
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
   SUMA = SUMA + Matriz[i][j];
  }  
  PROM = SUMA/(n*m);
  cout<<"El promedio de la Matriz es: "<<PROM <<endl;
 cout<<"************************************************************* \n\n";         
}

int MayMen()
{
 M=0;   
 men=0;
 for (i=1; i<=n; i++)
 for (j=1; j<=m; j++)      
  {
   if (Matriz[i][j]>PROM)
     M = M + 1;
   if (Matriz[i][j]<PROM)
     men = men + 1;
  }  
 cout<<"Tiene "<< M << "Valores Mayores al promedio de"<< PROM <<endl; 
 cout<<"Tiene "<< men << "Valores Menores al promedio de"<< PROM <<endl; 
}

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;

}