LENGUAJE DE PROGRAMACIÃ’N

SEMANA-14 MATRICEZ
Para este trabajo se desarrollo 2 versiones del codigo :
version 1
#include<iostream>
#include<cstdlib>
#include<stdlib.h>
using namespace std;
int Opcion;
int D[20][20], H[20][20], Z[20][20];
int k, m, n;
int i,j,M[3][3],SUMA,PRODUCTO;
int C[5][5],A[5][5],B[5][5];
float PROM;
void ASIGNAR_M(),MOSTRAR_M(),PROMEDIO_M(),SUMA_MATRICES(),PRODUCTO_MATRICES();
int main(){
do{
cout<<"\n";
cout<<" MENU DE MATRICEZ \n";
cout<<"-------------------------------\n";
cout<<"1. Asignar datos a la matriz \n";
cout<<"2. Mostrar datos de la matriz \n";
cout<<"3. Promedio de los elemtos de la matriz \n";
cout<<"4. Suma de dos matrices \n";
cout<<"5. Producto de dos matrices \n";
cout<<"Ingrese una opcion <>0:";cin>>Opcion;
switch(Opcion)
{
case 1:
{
cout<<endl;
cout<<"1. Asignar datos a la matriz \n";
cout<<"-----------------------------------------\n";
ASIGNAR_M();//invocacion
};break;
case 2:
{
cout<<endl;
cout<<"2. Mostrar datos de la matriz \n";
cout<<"-----------------------------------------\n";
MOSTRAR_M();
};break;
case 3:
{
cout<<endl;
cout<<"3. Promedio de los elemtos de la matriz \n";
cout<<"-----------------------------------------\n";
PROMEDIO_M();
};break;
case 4:
{
cout<<endl;
cout<<"4. Suma de dos matrices \n";
cout<<"-----------------------------------------\n";
SUMA_MATRICES();
cout<<endl;
};break;
case 5:
{
cout<<"5. Producto de dos matrices \n";
cout<<"-------------------------------------------------------------------------\n";
PRODUCTO_MATRICES();
cout<<endl;
};break;
}
}while(Opcion!=0);
}//Fin de programa
void ASIGNAR_M(){
cout<<"Ingrese los elementos de la matriz M[3][3]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"M["<<i<<"]["<<j<<"] = ";
cin>>M[i][j];
}
}
void MOSTRAR_M(){
cout<<"Mostrar los elementos de la matriz M[3][3]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"M["<<i<<"]["<<j<<"] = "<<M[i][j]<<endl;
}
}
void PROMEDIO_M(){
SUMA=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
SUMA=SUMA+M[i][j];
}
PROM=SUMA/9;
cout<<"El promedio de lso elemtos de la matriz M[3][3] ="<<PROM;
cout<<endl;
}
void SUMA_MATRICES(){//ASIGNAR
cout<<endl;
cout<<"Ingrese los elementos de la matriz A[5][5]y B[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cin>>A [i][j]; rand()%30;
cin>>B [i][j] ; rand()%30;
}
cout<<endl;
cout<<"Mostrar los elementos de la matriz A[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"A["<<i<<"]["<<j<<"] = "<<A[i][j]<<endl;
}
cout<<endl;
cout<<"Mostrar los elementos de la matriz B[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"B["<<i<<"]["<<j<<"] = "<<B[i][j]<<endl;
}
//Proceso de sum de matrices
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
C[i][j] =A[i][j]+B[i][j];
}//Resultado
cout<<endl;
cout<<"Mostrar los elementos del producto de matrices C[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"C["<<i<<"]["<<j<<"] = "<<C[i][j]<<endl;
}
}
void PRODUCTO_MATRICES()
{//ASIGNAR
cout<<endl;
cout<<"Ingrese los elementos de la matriz A[5][5]y B[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cin>>A [i][j]; rand()%30;
cin>>B [i][j] ; rand()%30;
}
cout<<endl;
cout<<"Mostrar los elementos de la matriz A[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"A["<<i<<"]["<<j<<"] = "<<A[i][j]<<endl;
}
cout<<endl;
cout<<"Mostrar los elementos de la matriz B[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"B["<<i<<"]["<<j<<"] = "<<B[i][j]<<endl;
}
//Proceso de sum de matrices
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
C[i][j] =A[i][j]*B[i][j];
}//Resultado
cout<<endl;
cout<<"Mostrar los elementos del producto de matrices C[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"C["<<i<<"]["<<j<<"] = "<<C[i][j]<<endl;
}
}

VERSION 2
#include<iostream>
#include<cstdlib>
#include<stdlib.h>
using namespace std;
int Opcion;
int D[20][20], H[20][20], Z[20][20];
int k, m, n;
int i,j,M[3][3],SUMA,PRODUCTO;
int C[5][5],A[5][5],B[5][5];
float PROM;
void ASIGNAR_M(),MOSTRAR_M(),PROMEDIO_M(),SUMA_MATRICES(),PRODUCTO_MATRICES();
int main(){
do{
cout<<" MENU DE VECTORES \n";
cout<<"-------------------------------\n";
cout<<"1. Asignar datos a la matriz \n";
cout<<"2. Mostrar datos de la matriz \n";
cout<<"3. Promedio de los elemtos de la matriz \n";
cout<<"4. Suma de dos matrices \n";
cout<<"5. Producto de dos matrices \n";
cout<<"Ingrese una opcion <>0:";cin>>Opcion;
switch(Opcion)
{
case 1:
{
cout<<endl;
cout<<"1. Asignar datos a la matriz \n";
cout<<"-----------------------------------------\n";
ASIGNAR_M();//invocacion
};break;
case 2:
{
cout<<endl;
cout<<"2. Mostrar datos de la matriz \n";
cout<<"-----------------------------------------\n";
MOSTRAR_M();
};break;
case 3:
{
cout<<endl;
cout<<"3. Promedio de los elemtos de la matriz \n";
cout<<"-----------------------------------------\n";
PROMEDIO_M();
};break;
case 4:
{
cout<<endl;
cout<<"4. Suma de dos matrices \n";
cout<<"-----------------------------------------\n";
SUMA_MATRICES();
cout<<endl;
};break;
case 5:
{
cout<<"5. Producto de dos matrices \n";
cout<<"-------------------------------------------------------------------------\n";
PRODUCTO_MATRICES();
cout<<endl;
};break;
}
}while(Opcion!=0);
}//Fin de programa
void ASIGNAR_M(){
cout<<"Ingrese los elementos de la matriz M[3][3]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"M["<<i<<"]["<<j<<"] = ";
cin>>M[i][j];
}
}
void MOSTRAR_M(){
cout<<"Mostrar los elementos de la matriz M[3][3]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"M["<<i<<"]["<<j<<"] = "<<M[i][j]<<endl;
}
}
void PROMEDIO_M(){
SUMA=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
SUMA=SUMA+M[i][j];
}
PROM=SUMA/9;
cout<<"El promedio de lso elemtos de la matriz M[3][3] ="<<PROM;
cout<<endl;
}
void SUMA_MATRICES(){//ASIGNAR
cout<<endl;
cout<<"Ingrese los elementos de la matriz A[5][5]y B[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cin>>A [i][j]; rand()%30;
cin>>B [i][j] ; rand()%30;
}
cout<<endl;
cout<<"Mostrar los elementos de la matriz A[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"A["<<i<<"]["<<j<<"] = "<<A[i][j]<<endl;
}
cout<<endl;
cout<<"Mostrar los elementos de la matriz B[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"B["<<i<<"]["<<j<<"] = "<<B[i][j]<<endl;
}
//Proceso de sum de matrices
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
C[i][j] =A[i][j]+B[i][j];
}//Resultado
cout<<endl;
cout<<"Mostrar los elementos de la suma de matrices C[5][5]\n";
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
cout<<"C["<<i<<"]["<<j<<"] = "<<C[i][j]<<endl;
}
}
void PRODUCTO_MATRICES()
{//ASIGNAR
cout<<"Lectura de matriz D."<<endl;
cout<<"Filas de D: "; cin>>k;
cout<<"Columnas de D: "; cin>>m;
cout<<endl;
for(int i=0; i<k; ++i)
for(int j=0; j<m; ++j)
{
cout<<"Ingrese valor para D["<<i<<"]["<<j<<"]: ";
cin>>D[i][j];
}
cout<<"Lectura de matriz H."<<endl;
cout<<"Filas de H: "<<m<<" (ya esta definido y es necesario)."<<endl;
cout<<"Columnas de H: "; cin>>n;
cout<<endl;
for(int i=0; i<m; ++i)
for(int j=0; j<n; ++j)
{
cout<<"Ingrese valor para H["<<i<<"]["<<j<<"]: ";
cin>>H[i][j];
}
// Inicializamos la matriz Z .
for(int i=0; i<k; ++i)
for(int j=0; j<n; ++j)
Z[i][j] = 0;
// Generamos la matriz Z.
for(int i=0; i<k; ++i)
for(int j=0; j<n; ++j)
for(int z=0; z<m; ++z)
Z[i][j] += D[i][z] * H[z][j];
cout<<"Matriz D: ";
for(int i=0; i<k; ++i)
{
for(int j=0; j<m; ++j)
{
cout<<D[i][j]<<" ";
}
cout<<endl;
}
cout<<"Matriz H: ";
for(int i=0; i<m; ++i)
{
for(int j=0; j<n; ++j)
{
cout<<H[i][j]<<" ";
}
cout<<endl;
}
cout<<"Matriz Z: ";
for(int i=0; i<k; ++i)
{
for(int j=0; j<n; ++j)
{
cout<<Z[i][j]<<" ";
}
cout<<endl;
}
}