Vous êtes sur la page 1sur 7

#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 funcin para salir break; default: //Si es una opcion no disponible cout<<" "; salida(); //Ejecuto esta funcin 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 funcin 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 funcin 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 operacin 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;} }

Vous aimerez peut-être aussi