#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int fil = 3;
const int col = 3;
int random();
void leerMatriz( int M[fil][col] );
void sumaMatrices( int A[fil][col], int B[fil][col] );
void restaMatrices( int A[fil][col], int B[fil][col] );
void escalarMatriz( int A[fil][col] );
void opuestaMatriz( int A[fil][col] );
void imprimirMatriz( int M[fil][col] );
void menu();
int main()
{
char opcion;
int A[fil][col];
int B[fil][col];
srand( time(NULL) );
leerMatriz( A );
leerMatriz( B );
do{
menu();
cin >> opcion;
switch( opcion ){
case '1':
sumaMatrices( A, B );
break;
case '2':
restaMatrices( A, B );
break;
case '3':
escalarMatriz( A );
break;
case '4':
opuestaMatriz( A );
break;
case '5':
cout << "\n\nFIN DEL PROGRAMA\n\n";
break;
default:
cout << "\n\nOPCION NO VALIDA\n\n";
break;
}
}while( opcion != '5' );
}
int random() { return rand()% 10 + 1; }
void leerMatriz( int M[fil][col] )
{
for( int i = 0; i < fil; i++ )
for( int j = 0; j < col; j++ )
M[i][j] = random();
}
void sumaMatrices( int A[fil][col], int B[fil][col] )
{
int C[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 );
cout << "\nMatriz B:\n";
imprimirMatriz( B );
cout << "\nSuma de las matrices (A+B):\n";
imprimirMatriz( C );
}
void restaMatrices( int A[fil][col], int B[fil][col] )
{
int C[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 );
cout << "\nMatriz B:\n";
imprimirMatriz( B );
cout << "\nResta de las matrices (A-B):\n";
imprimirMatriz( C );
}
void escalarMatriz( int A[fil][col] )
{
int n;
int C[fil][col];
cout << "\nEscalar: "; cin >> n;
for( int i = 0; i < fil; i++ )
for( int j = 0; j < col; j++ )
C[i][j] = A[i][j] * n;
cout << "\nMatriz A:\n";
imprimirMatriz( A );
cout << "\nMatriz escalar:\n";
imprimirMatriz( C );
}
void opuestaMatriz( int A[fil][col] )
{
int C[fil][col];
for( int i = 0; i < fil; i++ )
for( int j = 0; j < col; j++ )
C[i][j] = -A[i][j];
cout << "\nMatriz A:\n";
imprimirMatriz( A );
cout << "\nMatriz opuesta:\n";
imprimirMatriz( C );
}
void imprimirMatriz( int M[fil][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.- Escalar Matriz ............ (Pulsa 3)"
<< "\n4.- Opuesta Matriz ............ (Pulsa 4)"
<< "\n5.- Terminar ..................... (Pulsa 5)"
<< "\n============================================"
<< "\nSELECCIONA UNA OPCION (1 - 5): ";
}