SEMANA 14
#include<iostream>
#include<cstdlib>
#include<stdlib.h>
using namespace std;
int Opcion;
int i,j,M[3][3],SUMA;
int C[5][5],A[5][5],B[5][5];
float PROM;
void ASIGNAR_M(),MOSTRAR_M(),PROMEDIO_M(),SUMA_MATRICES(), INVERTIR_MATRIZ();
int main(){
do{
cout<<" MENU DE VECTORES \n";
cout<<"-------------------------------\n";
cout<<"1. Asignar datos a la matriz \n";
cout<<"2. Mostrar datos de la matriz \n";
cout<<"3. Promedio de los elemtos de la matriz \n";
cout<<"4. Suma de dos matrices \n";
cout<<"5. Inversa de una matriz \n";
cout<<"Ingrese una opcion <>0:"; cin>>Opcion;
switch(Opcion) {
case 1:
cout<<endl;
cout<<"1. Asignar datos a la matriz \n";
cout<<"-----------------------------------------\n";
ASIGNAR_M();
break;
case 2:
cout<<endl;
cout<<"2. Mostrar datos de la matriz \n";
cout<<"-----------------------------------------\n";
MOSTRAR_M();
break;
case 3:
cout<<endl;
cout<<"3. Promedio de los elemtos de la matriz \n";
cout<<"-----------------------------------------\n";
PROMEDIO_M();
break;
case 4:
cout<<endl;
cout<<"4. Suma de dos matrices \n";
cout<<"-----------------------------------------\n";
SUMA_MATRICES();
cout<<endl;
break;
case 5:
cout<<endl;
cout<<"5. Inversa de una matriz \n";
cout<<"-----------------------------------------\n";
INVERTIR_MATRIZ();
cout<<endl;
break;
}
} while(Opcion!=0);
return 0;
}
void ASIGNAR_M(){
cout<<"Ingrese los elementos de la matriz M[3][3]\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>M[i][j];
}
void MOSTRAR_M(){
cout<<"Mostrar los elementos de la matriz M[3][3]\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<"M["<<i+1<<"]["<<j+1<<"] = "<<M[i][j]<<endl;
}
void PROMEDIO_M(){
SUMA=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
SUMA+=M[i][j];
PROM=SUMA/9;
cout<<"El promedio de los elementos de la matriz M[3][3] = "<<PROM<<endl;
}
void SUMA_MATRICES(){
cout<<"Ingrese los elementos de la matriz A[3][3] y B[3][3]\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++) {
cin>>A[i][j];
cin>>B[i][j];
}
cout<<"Mostrar los elementos de la matriz A[3][3]\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<"A["<<i+1<<"]["<<j+1<<"] = "<<A[i][j]<<endl;
cout<<"Mostrar los elementos de la matriz B[3][3]\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<"B["<<i+1<<"]["<<j+1<<"] = "<<B[i][j]<<endl;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
C[i][j] = A[i][j] + B[i][j];
cout<<"Mostrar los elementos de la suma de matrices C[3][3]\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<"C["<<i+1<<"]["<<j+1<<"] = "<<C[i][j]<<endl;
}
void INVERTIR_MATRIZ() {
double det;
double inv[3][3];
double temp;
det = M[0][0](M[1][1]*M[2][2] - M[1][2]*M[2][1]) - M[0][1](M[1][0]M[2][2] - M[1][2]*M[2][0]) + M[0][2](M[1][0]*M[2][1] - M[1][1]*M[2][0]);
if (det == 0) {
cout << "The matrix is not invertible." << endl;
return;
}
inv[0][0] = (M[1][1]*M[2][2] - M[1][2]*M[2][1]) / det;
inv[0][1] = (M[0][2]*M[2][1] - M[0][1]*M[2][2]) / det;
inv[0][2] = (M[0][1]*M[1][2] - M[0][2]*M[1][1]) / det;
inv[1][0] = (M[1][2]*M[2][0] - M[1][0]*M[2][2]) / det;
inv[1][1] = (M[0][0]*M[2][2] - M[0][2]*M[2][0]) / det;
inv[1][2] = (M[0][2]*M[1][0] - M[0][0]*M[1][2]) / det;
inv[2][0] = (M[1][0]*M[2][1] - M[1][1]*M[2][0]) / det;
inv[2][1] = (M[0][1]*M[2][0] - M[0][0]*M[2][1]) / det;
inv[2][2] = (M[0][0]*M[1][1] - M[0][1]*M[1][0]) / det;
cout<<"Inverse of the matrix M[3][3]:"<<endl;
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
cout<<inv[i][j]<<" ";
}
cout<<endl;
}
}