top of page

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

bottom of page