#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;}
}
钱亚锋
- 粉丝: 107
- 资源: 1万+
最新资源
- 星空小城堡卡通幼儿园课件模板.pptx
- 1基于spring boot房产销售平台.zip
- 1基于spring boot汉服推广网站.zip
- 1基于spring boot火车订票管理系统.zip
- 1基于spring boot家具网站.zip
- 1基于spring boot交流互动系统(1).zip
- 1基于spring boot家具销售电商平台.zip
- 1基于spring boot教师人事档案管理系统.zip
- 1基于spring boot酒店管理系统.zip
- 1基于spring boot考研资讯平台.zip
- Java语言基于机器学习的股票预测系统源码+文档说明(毕业设计项目)
- 1基于spring boot垃圾分类网站.zip
- 1基于spring boot口腔管家平台.zip
- 1基于spring boot旅游管理系统.zip
- 1基于spring boot某银行OA系统.zip
- 1基于spring boot汽车租赁系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈