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; } } }

No hay comentarios:

Publicar un comentario