#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctype.h>
using namespace std;
int operacion_sum(int [][100], int [][100], int [][100], int , int , int, int);
int operacion_res(int [][100], int [][100], int [][100], int , int, int, int);
int operacion_mul(int [][100], int [][100], int [][100], int , int, int, int);
int suma();
int resta();
int multiplicacion();
int salida();
int opcion;
int main()
{
int n,f,c,r,f1,f2,c1,c2, m1[100][100], m2[100][100], mr[100][100];
int opcion;
f1=0; c1=0; f2=0; c2=0;
cout<<"Este programa suma, resta o multiplica matrices"<<endl<<endl;
cout<<"Que desea hacer, si la opcion no esta disponible el programa finalizara"<<endl<<endl;
cout<<"1) Suman";
cout<<"2) Restan";
cout<<"3) Multiplicacionn";
cout<<"4) Salirn";
cout<<" "<<endl;
cin>>opcion;
cout<<" "<<endl;
switch(opcion) //Verifica el valor de opcion
{
case 1: //Si es uno
suma(); //sumo
break;
case 2: //Si es dos
resta(); //resto
break;
case 3: //Si es tres
multiplicacion(); //multiplico
break;
case 4: //Si es cuatro
salida(); //Ejecuto esta función para salir
break;
default: //Si es una opcion no disponible
cout<<" ";
salida(); //Ejecuto esta función para salir
}
if (opcion >=1 and opcion <=3) // si escojo 1, 2 o 3
{
cout<<endl<<"Escoja una opcion, si la opcion no esta disponible el programa finalizara"<<endl<<endl;
cout<<"1) Volver a calcular una matrizn";
cout<<"2) Salirn"<<endl;
cin>>opcion;
cout<<" "<<endl;
switch(opcion) //Verifica el valor de opcion
{
case 1: //Si es uno
system("cls"; //limpio la pantalla
main(); //Ejecuto nuevamente la función para calcular matrices
break;
case 2: //Si es dos
salida();
break; //El break sirve para que no ejecute las demas opciones
default: //Si es una opcion no disponible
cout<<" ";
salida(); //Ejecuto esta función para salir
}
} //aqui termina el if
}
int salida() // funcion para salir
{
cout<<endl<<"Trabajo realizado por:"<<endl;
cout<<" Carlos Arturo Marin"<<endl; // Quiten mi nombre y coloquen el de ustedes
cout<<endl<<"Programa finalizado..."<<endl;
system("PAUSE";
}
int suma() // funcion suma
{
int n,f,c,r,f1,f2,c1,c2, m1[100][100], m2[100][100], mr[100][100];
f1=0; c1=0; f2=0; c2=0;
while ((f1<1) || (f1>101))
{ cout<<"Ingrese el numero de filas de la matriz 1 (maximo 100 filas): ";
cin>>f1;
}
f1--; //Disminuyo en 1 el dato capturado porque el programa me cuenta el 0
while ((c1<1) || (c1>101))
{ cout<<"Ingrese el numero de columnas de la matriz 1 (maximo 100 columnas): "; cin>>c1; }
c1--;
while ((f2<1) || (f2>101))
{ cout<<endl<<"Ingrese el numero de filas de la matriz 2 (maximo 100 filas): "; cin>>f2; }
f2--;
while ((c2<1) || (c2>101))
{ cout<<"Ingrese el numero de columnas de la matriz 2 (maximo 100 columnas): "; cin>>c2; }
c2--;
r=operacion_sum (m1,m2,mr,f1,f2,c1,c2);
if (r==-1)
{cout<<endl<<"No se pudo realizar la operacion, la dimension de las matrices no coincide"<<endl;}
else
{
cout<<endl<<"Digite por filas los datos de la matriz 1"<<endl<<endl;
for (f=0; f<=f1; f++)
{
for (c=0; c<=c1; c++)
{ cout<<"m1["<<f<<"]["<<c<<"] = "; cin>>m1[f][c]; }
}
cout<<endl<<"Digite por filas los datos de la matriz 2"<<endl<<endl;
for (f=0; f<=f2; f++)
{
for (c=0; c<=c2; c++)
{ cout<<"m2["<<f<<"]["<<c<<"] = "; cin>>m2[f][c]; }
}
cout<<endl<<"El resultado de la suma de las matrices es:"<<endl<<endl;
r=operacion_sum (m1,m2,mr,f1,f2,c1,c2);
for (f=0; f<=f2; f++)
{
for (c=0; c<=c2; c++)
cout<<" "<<mr[f][c]<<" ";
cout<<endl;
}
}
}
int resta() // funcion resta
{
int n,f,c,r,f1,f2,c1,c2, m1[100][100], m2[100][100], mr[100][100];
f1=0; c1=0; f2=0; c2=0;
while ((f1<1) || (f1>101))
{ cout<<"Ingrese el numero de filas de la matriz 1 (maximo 100 filas): ";
cin>>f1;
}
f1--; //Disminuyo en 1 el dato capturado porque el programa me cuenta el 0
while ((c1<1) || (c1>101))
{ cout<<"Ingrese el numero de columnas de la matriz 1 (maximo 100 columnas): "; cin>>c1; }
c1--;
while ((f2<1) || (f2>101))
{ cout<<endl<<"Ingrese el numero de filas de la matriz 2 (maximo 100 filas): "; cin>>f2; }
f2--;
while ((c2<1) || (c2>101))
{ cout<<"Ingrese el numero de columnas de la matriz 2 (maximo 100 columnas): "; cin>>c2; }
c2--;
r=operacion_res (m1,m2,mr,f1,f2,c1,c2);
if (r==-1)
{cout<<endl<<"No se pudo realizar la operacion, la dimension de las matrices no coincide"<<endl;}
else
{
cout<<endl<<"Digite por filas los datos de la matriz 1"<<endl<<endl;
for (f=0; f<=f1; f++)
{
for (c=0; c<=c1; c++)
{ cout<<"m1["<<f<<"]["<<c<<"] = "; cin>>m1[f][c]; }
}
cout<<endl<<"Digite por filas los datos de la matriz 2"<<endl<<endl;
for (f=0; f<=f2; f++)
{
for (c=0; c<=c2; c++)
{ cout<<"m2["<<f<<"]["<<c<<"] = "; cin>>m2[f][c]; }
}
cout<<endl<<"El resultado de la resta de las matrices es:"<<endl<<endl;
r=operacion_res (m1,m2,mr,f1,f2,c1,c2);
for (f=0; f<=f2; f++)
{
for (c=0; c<=c2; c++)
cout<<" "<<mr[f][c]<<" ";
cout<<endl;
}
}
}
int multiplicacion() //funcion multiplicacion
{
int f,c,r,f1,f2,c1,c2, m1[100][100], m2[100][100], mr[100][100];
f1=0; c1=0; f2=0; c2=0;
while ((f1<1) || (f1>101))
{ cout<<"Ingrese el numero de filas de la matriz 1 (maximo 100 filas): ";
cin>>f1;
}
f1--; //Disminuyo en 1 el dato capturado porque el programa me cuenta el 0
while ((c1<1) || (c1>101))
{ cout<<"Ingrese el numero de columnas de la matriz 1 (maximo 100 columnas): "; cin>>c1; }
c1--;
while ((f2<1) || (f2>101))
{ cout<<endl<<"Ingrese el numero de filas de la matriz 2 (maximo 100 filas): "; cin>>f2; }
f2--;
while ((c2<1) || (c2>101))
{ cout<<"Ingrese el numero de columnas de la matriz 2 (maximo 100 columnas): "; cin>>c2; }
c2--;
r=operacion_mul(m1,m2,mr,f1,f2,c1,c2);
if (r==-1)
{
cout<<endl<<"No se pudo realizar la operacion, la dimension de las matrices no coincide"<<endl;
}
else
{
cout<<endl<<"Digite por filas los datos de la matriz 1"<<endl<<endl;
for (f=0; f<=f1; f++)
{
for (c=0; c<=c1; c++)
{ cout<<"m1["<<f<<"]["<<c<<"] = "; cin>>m1[f][c]; }
}
cout<<endl<<"Digite por filas los datos de la matriz 2"<<endl<<endl;
for (f=0; f<=f2; f++)
{
for (c=0; c<=c2; c++)
{ cout<<"m2["<<f<<"]["<<c<<"] = "; cin>>m2[f][c]; }
}
r=operacion_mul(m1,m2,mr,f1,f2,c1,c2); //Ejecuto la funcion que hace la operación de multiplicacion
{
cout<<endl<<"El resultado de la multiplicacion de las matrices es:"<<endl<<endl;
cout<<endl;
for (f=0; f<=f1; f++)
{
for (c=0; c<=c2; c++)
cout<<" "<<mr[f][c]<<" "; //Muestro la matriz resultante en la pantalla
cout<<endl;
}
}
}
}
int operacion_sum(int m1[][100], int m2[][100], int mr[][100], int f1, int f2,int c1, int c2)
{
int f,c;
if ((f1==f2) && (c1==c2)) //si si se pueden sumar/restar
{
for (f=0; f<=f1; f++)
{
for (c=0; c<=c1; c++)
mr[f][c] = m1[f][c] + m2[f][c];
}
return 1;
}
else
{return -1;}
}
int operacion_res(int m1[][100], int m2[][100], int mr[][100], int f1, int f2,int c1, int c2)
{
int f,c;
if ((f1==f2) && (c1==c2)) //si si se pueden sumar/restar
{
for (f=0; f<=f1; f++)
{
for (c=0; c<=c1; c++)
mr[f][c] = m1[f][c] - m2[f][c];
}
return 1;
}
else
{return -1;}
}
int operacion_mul(int m1[][100], int m2[][100], int mr[][100], int f1, int f2,int c1, int c2) //funcion operacion
{
int f,c,cc;
if (c1==f2) //si si se pueden multiplicar
{
for (cc=0; cc<=c2; cc++) //recorremos las columnas de B
{
for (f=0; f<=f1; f++)
{
for (c=0; c<=c1; c++)
{ mr[f][cc]+=m1[f][c]*m2[c][cc]; }
}
}
return 1;
}
else
{return -1;}
}
没有合适的资源?快使用搜索试试~ 我知道了~
matriz.txt.zip_As One
共1个文件
txt:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 84 浏览量
2022-09-19
20:52:23
上传
评论
收藏 2KB ZIP 举报
温馨提示
matrix 3x3 Hello all Taringueros, for those who need to multiply, add or subtract matrices with C + + I bring this code, I just need to change the credits, that is, take my name and put yours. This code while not completely mine, if the changes are. The code in Dev C + + shows no errors, not even a warning. I reiterate that this program is more complete than the one that was posted recently, just as the other multiplied matrices, however this gives you the option to choose whether to multiply, add or subtract matrices, another change is that the operations are as functions, this gives you ease of modification to the program ...
资源推荐
资源详情
资源评论
收起资源包目录
matriz.txt.zip (1个子文件)
matriz.txt 7KB
共 1 条
- 1
资源评论
钱亚锋
- 粉丝: 101
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Veriloh-HDL实现的通用串口模块,UART通信,支持校验,波特率参数化可设置
- 【java毕业设计】springbootJava Move体育商城(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】springboot乡村生活垃圾(springboot+vue+mysql+说明文档).zip
- ditto安装包+pixpin安装包+notepad++.rar
- VMware虚拟机管理器安装包(亲测可用)
- AXI-VFIFO,VerilgHdl实现
- 003.获取鼠标坐标位置
- apache-maven-3.9.9-bin
- 002改变鼠标光标样式
- rustdesk 苹果intel客户端
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功