You are on page 1of 5

#include <iostream>

using namespace std;

void leerMatriz( int **M, int fil, int col );


void sumaMatrices();
void restaMatrices();
void multiplicacionMatrices();
void quaternios();
void matrizInversa();
void matrizTranspuesta();
void matrizAdjunta();
void imprimirMatriz( int **M, int fil, int col );
void menu();

int main()
{
int opcion;

do{
menu();
cin >> opcion;
if( cin.fail() || cin.bad() ){
opcion = 0;
cin.clear();
cin.ignore( '\n', 80 );
}

switch( opcion ){
case 1:
sumaMatrices();
break;

case 2:
restaMatrices();
break;

case 3:
multiplicacionMatrices();
break;

case 4:
matrizInversa();
break;

case 5:
matrizTranspuesta();
break;

case 6:
matrizAdjunta();
break;

case 7:
cout << "\n\nFIN DEL PROGRAMA\n\n";
break;

default:
cout << "\n\nOPCION NO VALIDA\n\n";
break;
}

}while( opcion != 7 );
}

void leerMatriz( int **M, int fil, int col )


{
cout << "\nRellenar la matriz:\n";
for( int i = 0; i < fil; i++ ){
for( int j = 0; j < col; j++ ){
cout << "Matriz[" << i << "][" << j << "]: ";
cin >> M[i][j];
}
}
}

void sumaMatrices()
{
int fil, col;

cout << "\nLAS MATRICES DEBEN TENER LA MISMA DIMENSION\n"


<< "\nDimension de la matriz:";
cout << "\nFilas de la matriz: "; cin >> fil;
cout << "Columnas de la matriz: "; cin >> col;

int** A = new int*[fil];


for( int i = 0; i < fil; i++ )
A[i] = new int[col];

int** B = new int*[fil];


for( int i = 0; i < fil; i++ )
B[i] = new int[col];

int** C = new int*[fil];


for( int i = 0; i < fil; i++ )
C[i] = new int[col];

cout << "\nDatos de la matriz A: ";


leerMatriz( A, fil, col );

cout << "\nDatos de la matriz B: ";


leerMatriz( B, fil, col );

for( int i = 0; i < fil; i++ )


for( int j = 0; j < col; j++ )
C[i][j] = A[i][j] + B[i][j];

cout << "\nMatriz A:\n";


imprimirMatriz( A, fil, col );
cout << "\nMatriz B:\n";
imprimirMatriz( B, fil, col );
cout << "\nSuma de las matrices (A+B):\n";
imprimirMatriz( C, fil, col );

void restaMatrices()
{
int fil, col;

cout << "\nLAS MATRICES DEBEN TENER LA MISMA DIMENSION\n"


<< "\nDimension de la matriz:";
cout << "\nFilas de la matriz: "; cin >> fil;
cout << "Columnas de la matriz: "; cin >> col;

int** A = new int*[fil];


for( int i = 0; i < fil; i++ )
A[i] = new int[col];

int** B = new int*[fil];


for( int i = 0; i < fil; i++ )
B[i] = new int[col];

int** C = new int*[fil];


for( int i = 0; i < fil; i++ )
C[i] = new int[col];

cout << "\nDatos de la matriz A: ";


leerMatriz( A, fil, col );

cout << "\nDatos de la matriz B: ";


leerMatriz( B, fil, col );

for( int i = 0; i < fil; i++ )


for( int j = 0; j < col; j++ )
C[i][j] = A[i][j] - B[i][j];

cout << "\nMatriz A:\n";


imprimirMatriz( A, fil, col );
cout << "\nMatriz B:\n";
imprimirMatriz( B, fil, col );
cout << "\nResta de las matrices (A-B):\n";
imprimirMatriz( C, fil, col );
}

void multiplicacionMatrices()
{
int filA, colA, filB, colB;

cout << "\n EL NUMERO DE COLUMNAS DE LA MATRIZ A"


<< "\nDEBE COINCIDIR CON EL DE FILAS DE LA MATRI B\n";

cout << "\nDimension de la matriz A:";


cout << "\nFilas de la matriz: "; cin >> filA;
cout << "Columnas de la matriz: "; cin >> colA;

int** A = new int*[filA];


for( int i = 0; i < filA; i++ )
A[i] = new int[colA];

leerMatriz( A, filA, colA );

cout << "\nDimension de la matriz B:";


cout << "\nFilas de la matriz: "; cin >> filB;
cout << "Columnas de la matriz: "; cin >> colB;

int** B = new int*[filB];


for( int i = 0; i < filB; i++ )
B[i] = new int[colB];

leerMatriz( B, filB, colB );

int** C = new int*[filA];


for( int i = 0; i < filA; i++ )
C[i] = new int[colA];

if( colA == filB ){


for( int i = 0; i < filA; ++i ){
for( int j = 0; j < colB; ++j ){
C[i][j] = 0;
for( int z = 0; z < colA; ++z )
C[i][j] += A[i][z] * B[z][j];
}
}

cout << "\nMatriz A:\n";


imprimirMatriz( A, filA, colA );
cout << "\nMatriz B:\n";
imprimirMatriz( B, filB, colB );
cout << "\nMultiplicacion de las matrices (A*B):\n";
imprimirMatriz( C, filA, colB );

}else
cout << "\n NO SE PUEDEN MULTIPLICAR"
<< "\n EL NUMERO DE COLUMNAS DE LA MATRIZ A"
<< "\nDEBE COINCIDIR CON EL DE FILAS DE LA MATRI B";

void matrizInversa()
{

void matrizTranspuesta()
{

void matrizAdjunta()
{

void imprimirMatriz( int **M, int fil, int col )


{
for( int i = 0; i < fil; i++ ){
cout << "\n| ";
for( int j = 0; j < col; j++ )
cout << M[i][j] << " ";

cout << " |";


}
cout << endl;
}
void menu()
{
cout << "\n CALCULADORA DE MATRICES"
<< "\n============================================"
<< "\n1.- Suma de Matrices ............. (Pulsa 1)"
<< "\n2.- Resta de Matrices ............ (Pulsa 2)"
<< "\n3.- Multiplicacion de Matrices ... (Pulsa 3)"
<< "\n4.- Quaternios.....................(Pulsa 4)"
<< "\n5.- Matriz Inversa ............... (Pulsa 5)"
<< "\n6.- Matriz Transpuesta ........... (Pulsa 6)"
<< "\n7.- Matriz Adjunta ............... (Pulsa 7)"
<< "\n8.- Terminar ..................... (Pulsa 8"
<< "\n============================================"
<< "\nSELECCIONA UNA OPCION (1 - 8): ";

You might also like