Introducción
En este laboratorio, aprenderá a realizar diversas operaciones con matrices, como la adición, la sustracción y la multiplicación, en una matriz bidimensional dada utilizando el lenguaje de programación C++. También aprenderá a manipular y utilizar matrices de manera efectiva.
Creando el archivo de programa C++
Cree un nuevo archivo llamado matrix_operations.cpp en el directorio ~/project. Esto se puede hacer utilizando el siguiente comando en la terminal.
touch ~/project/matrix_operations.cpp
Incluyendo las bibliotecas necesarias y configurando la función principal
El primer paso en nuestro programa C++ es incluir las bibliotecas necesarias para las operaciones de entrada/salida y limpiar la consola. Después de eso, configure la función principal de su programa C++. Puede usar el siguiente código como plantilla.
#include<iostream.h>
#include<conio.h>
int main()
{
clrscr();
// Su código aquí
getch();
return 0;
}
Suma de dos matrices
En este paso, crearemos un caso para realizar la suma de dos matrices. El programa en C++ pedirá al usuario que ingrese el orden o dimensiones de las dos matrices (debe ser m*n y o*p).
Si las dimensiones de las matrices no son las mismas, el programa devolverá un mensaje de error. Luego, ingrese los elementos de las matrices y súmelos. El código final debería verse como el siguiente.
//SUMA
caso 1:
cout<<"\nIngrese el orden de la matriz a (debe ser m*n): "<<endl;
cin>>m;
cout<<"* \n";
cin>>n;
cout<<"Ingrese el orden de la matriz b (debe ser o*p): "<<endl;
cin>>o;
cout<<"* \n";
cin>>p;
if (m==o&&n==p)
{
cout<<"Suma posible "<<endl;
}
else
{
cout<<"Suma no posible ";
l=0;
}
if(l)
{
cout<<"\n\nIngrese los elementos de la matriz 1: "<<endl;
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
cin>>a[i][j];
}
cout<<"Elementos de la matriz 1 son: ";
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
cout<<"\nIngrese los elementos de la matriz 2: "<<endl;
for (i=1;i<=o;i++)
{
for (j=1;j<=p;j++)
cin>>b[i][j];
}
cout<<"Elementos de la matriz 2 son: ";
for (i=1;i<=o;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<b[i][j]<<" ";
}
cout<<"\n\n\nSuma:\nc=a+b=";
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<c[i][j]<<" ";
}
}
break;
Resta de dos matrices
En este paso, crearemos un caso para realizar la resta de dos matrices. El programa en C++ pedirá al usuario que ingrese el orden o dimensiones de las dos matrices (debe ser m*n y o*p).
Si las dimensiones de las matrices no son las mismas, el programa devolverá un mensaje de error. Luego, ingrese los elementos de las matrices y reste las matrices. El código final debería verse como el siguiente.
//RESTA
caso 2:
cout<<"\nIngrese el orden de la matriz a (debe ser m*n): "<<endl;
cin>>m;
cout<<"* \n";
cin>>n;
cout<<"Ingrese el orden de la matriz b (debe ser o*p): "<<endl;
cin>>o;
cout<<"* \n";
cin>>p;
if (m==o&&n==p)
{
cout<<"Resta posible "<<endl;
}
else
{
cout<<"Resta no posible ";
l=0;
}
if(l)
{
cout<<"\n\nIngrese los elementos de la matriz 1: "<<endl;
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
cin>>a[i][j];
}
cout<<"Elementos de la matriz 1 son: ";
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
cout<<"\nIngrese los elementos de la matriz 2: "<<endl;
for (i=1;i<=o;i++)
{
for (j=1;j<=p;j++)
cin>>b[i][j];
}
cout<<"Elementos de la matriz 2 son: ";
for (i=1;i<=o;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<b[i][j]<<" ";
}
cout<<"\n\n\nResta:\nc=a - b=";
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
c[i][j]=a[i][j]-b[i][j];
}
}
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<c[i][j]<<" ";
}
}
break;
Multiplicación de dos matrices
En este paso, crearemos un caso para realizar la multiplicación de dos matrices. El programa en C++ pedirá al usuario que ingrese el orden o dimensiones de las dos matrices (debe ser m*n y o*p).
Si las dimensiones de las matrices no son compatibles, el programa devolverá un mensaje de error. Luego, ingrese los elementos de las matrices y multiplíquelos. El código final debería verse como el siguiente.
//MULTIPLICACIÓN
caso 3:
cout<<"\nIngrese el orden de la matriz a (debe ser m*n): "<<endl;
cin>>m;
cout<<"* \n";
cin>>n;
cout<<"Ingrese el orden de la matriz b (debe ser o*p): "<<endl;
cin>>o;
cout<<"* \n";
cin>>p;
if (n==o)
{
cout<<"Multiplicación posible "<<endl;
}
else
{
cout<<"Multiplicación no posible ";
l=0;
}
if(l)
{
cout<<"\n\nIngrese los elementos de la matriz 1: "<<endl;
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
cin>>a[i][j];
}
cout<<"Elementos de la matriz 1 son: ";
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
cout<<"\nIngrese los elementos de la matriz 2: "<<endl;
for (i=1;i<=o;i++)
{
for (j=1;j<=p;j++)
cin>>b[i][j];
}
cout<<"Elementos de la matriz 2 son: ";
for (i=1;i<=o;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<b[i][j]<<" ";
}
cout<<"\n\n\nMultiplicación:\nc=aXb=";
for (i=1;i<=m;i++)
{
for (j=1;j<=p;j++)
{
c[i][j]=0;
for (int k=1;k<=n;k++)
{
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
}
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<c[i][j]<<" ";
}
}
break;
Ejecutando el programa C++
Puede ejecutar el archivo matrix_operations.cpp compilándolo con el siguiente comando en la terminal:
g++ ~/project/matrix_operations.cpp -o matrix && ./matrix
Es posible que tenga que reemplazar matrix_operations.cpp con el nombre que haya usado para su archivo de programa C++.
Asumiendo que su código está dando la salida esperada, debería poder ver un mensaje que le pide un número de caso (1 para Suma, 2 para Resta y 3 para Multiplicación). Después de ingresar su elección, el programa le pedirá que ingrese matrices según la operación elegida.
Código completo del programa C++
A continuación se presenta el código completo para nuestro archivo de programa matrix_operations.cpp.
#include<iostream.h>
#include<conio.h>
int main()
{
clrscr();
int a[50][50],b[50][50],c[50][50],i,j,m,n,o,p,l=1,r;
cout<<"Ingrese el caso:\n";
cin>>r;
switch(r)
{
//SUMA
caso 1:
cout<<"\nIngrese el orden de la matriz a (debe ser m*n): "<<endl;
cin>>m;
cout<<"*\n";
cin>>n;
cout<<"Ingrese el orden de la matriz b (debe ser o*p): "<<endl;
cin>>o;
cout<<"*\n";
cin>>p;
if (m==o&&n==p)
{
cout<<"Suma posible "<<endl;
}
else
{
cout<<"Suma no posible ";
l=0;
}
if(l)
{
cout<<"\n\nIngrese los elementos de la matriz 1: "<<endl;
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
cin>>a[i][j];
}
cout<<"Elementos de la matriz 1 son: ";
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
cout<<"\nIngrese los elementos de la matriz 2: "<<endl;
for (i=1;i<=o;i++)
{
for (j=1;j<=p;j++)
cin>>b[i][j];
}
cout<<"Elementos de la matriz 2 son: ";
for (i=1;i<=o;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<b[i][j]<<" ";
}
cout<<"\n\n\nSuma:\nc=a+b=";
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<c[i][j]<<" ";
}
}
break;
//RESTA
caso 2:
cout<<"\nIngrese el orden de la matriz a (debe ser m*n): "<<endl;
cin>>m;
cout<<"*\n";
cin>>n;
cout<<"Ingrese el orden de la matriz b (debe ser o*p): "<<endl;
cin>>o;
cout<<"*\n";
cin>>p;
if (m==o&&n==p)
{
cout<<"Resta posible "<<endl;
}
else
{
cout<<"Resta no posible ";
l=0;
}
if(l)
{
cout<<"\n\nIngrese los elementos de la matriz 1: "<<endl;
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
cin>>a[i][j];
}
cout<<"Elementos de la matriz 1 son: ";
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
cout<<"\nIngrese los elementos de la matriz 2: "<<endl;
for (i=1;i<=o;i++)
{
for (j=1;j<=p;j++)
cin>>b[i][j];
}
cout<<"Elementos de la matriz 2 son: ";
for (i=1;i<=o;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<b[i][j]<<" ";
}
cout<<"\n\n\nResta:\nc=a-b=";
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
{
c[i][j]=a[i][j]-b[i][j];
}
}
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<c[i][j]<<" ";
}
}
break;
//MULTIPLICACIÓN
caso 3:
cout<<"\nIngrese el orden de la matriz a (debe ser m*n): "<<endl;
cin>>m;
cout<<"*\n";
cin>>n;
cout<<"Ingrese el orden de la matriz b (debe ser o*p): "<<endl;
cin>>o;
cout<<"*\n";
cin>>p;
if (n==o)
{
cout<<"Multiplicación posible "<<endl;
}
else
{
cout<<"Multiplicación no posible ";
l=0;
}
if(l)
{
cout<<"\n\nIngrese los elementos de la matriz 1: "<<endl;
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
cin>>a[i][j];
}
cout<<"Elementos de la matriz 1 son: ";
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
}
cout<<"\nIngrese los elementos de la matriz 2: "<<endl;
for (i=1;i<=o;i++)
{
for (j=1;j<=p;j++)
cin>>b[i][j];
}
cout<<"Elementos de la matriz 2 son: ";
for (i=1;i<=o;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<b[i][j]<<" ";
}
cout<<"\n\n\nMultiplicación:\nc=aXb=";
for (i=1;i<=m;i++)
{
for (j=1;j<=p;j++)
{
c[i][j]=0;
for (int k=1;k<=n;k++)
{
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
}
for (i=1;i<=m;i++)
{
cout<<endl;
for (j=1;j<=p;j++)
cout<<c[i][j]<<" ";
}
}
break;
// caso predeterminado
default:
cout<<"Elección incorrecta";
}
getch();
return 0;
}
Resumen
En este laboratorio, has aprendido cómo realizar diversas operaciones con matrices en una matriz bidimensional dada utilizando la programación en C++. También has aprendido cómo manipular y utilizar matrices. Ahora deberías tener una buena comprensión de cómo funcionan las matrices en la programación en C++.



