#include<iostream>
#include<conio2.h>
#include<stdio.h>
using namespace std;
//parametrización
void LLENAR_f(int [3][100],int ,int ,int );
void SUAMAR_f(int [3][100]);
void MULTIPLICAR_f(int [3][100]);
void REDIMENCIONAR_f(int [3][100]);
void PROM_FILA_f(int[3][100]);
void CANTIDAD_IMPARES_f(int [3][100]);
int main()
{
int MDlistrip[3][100]={0};
float R[3][100]={0};
int NF,NC,ND;
short op;
cout<<"\nIngrese numero de Filas";
cin>>NF;
cout<<"\nIngrese numero de Columnas";
cin>>NC;
cout<<"\nIngrese numero de Datos";
cin>>ND;
LLENAR_f(MDlistrip,NF,NC,ND);
do
{
gotoxy(15,1);
cout<<"Menu Principal";
cout<<"\nSumar dos matrices dispersas 1:";
cout<<"\nMultiplicar dos matrices dispersas 2:";
cout<<"\nEncontrar la traspuesta de ambas matrices dispersas 3:";
cout<<"\nMostrar el promedio de cada fila 4:";
cout<<"\nMostrar la cantidad de impares de cada columna 5:";
cout<<"\nMostrar las matrices dispersas 6:";
cout<<"\nIngrese dato del menu:";
cin>>op;
switch(op)
{
case 1 : SUAMAR_f(MDlistrip) ;break;
case 2 : MULTIPLICAR_f(MDlistrip);break;
// case 3 : TRASPUESTAS_f();break;
case 4 : PROM_FILA_f(MDlistrip);break;
case 5 : CANTIDAD_IMPARES_f(MDlistrip);break;
case 6 : ;break;
}
}while(op>=1||op<=6);
system("PAUSE");
return EXIT_SUCCESS;
}
void LLENAR_f(int MDlistrip[3][100],int NF,int NC,int ND)
{
float dat;
int f,c;
short i,j;
MDlistrip[0][0]=NF;
MDlistrip[0][1]=NC;
MDlistrip[0][3]=ND;
for(i=1;i<=MDlistrip[0][3]+1;i++)
{
cout<<"\nIngrese Filas";
cin>>MDlistrip[i][0];
cout<<"\nIngrese Columnas";
cin>>MDlistrip[i][1];
cout<<"\nIngrese Dato";
cin>>MDlistrip[i][2];
}
}
void SUAMAR_f(int MDlistrip[3][100])
{
int MDlistripB[3][100]={0};
int MDlistripR[3][100]={0};
int NF,NC,ND;
short k=1;
cout<<"\nIngrese numero de Filas de la matriz B";
cin>>NF;
cout<<"\nIngrese numero de Columnas de la matriz B";
cin>>NC;
cout<<"\nIngrese numero de Datos de la matriz B";
cin>>ND;
LLENAR_f(MDlistripB,NF,NC,ND);
while ((k<= MDlistripB[0][2]+1)&&(k<=MDlistrip[0][2]+1))
{
if((MDlistripB[k][0]==MDlistrip[k][0])&&(MDlistripB[k][1]==MDlistrip[k][1]))
{
MDlistripR[k][0]=MDlistrip[k][0];
MDlistripR[k][0]=MDlistrip[k][0];
MDlistripR[k][2]=MDlistrip[k][2]+MDlistripB[k][2];
k++;
}
else
{
if(MDlistrip[k][0]<MDlistripB[k][0])
{
MDlistripR[k][0]=MDlistripB[k][0];
MDlistripR[k][0]=MDlistripB[k][1];
MDlistripR[k][0]=MDlistripB[k][2];
k++;
MDlistripR[k][0]=MDlistripB[k][0];
MDlistripR[k][0]=MDlistripB[k][1];
MDlistripR[k][0]=MDlistripB[k][2];
k++;
}
else if (MDlistrip[k][0]>MDlistripB[k][0])
{
MDlistripR[k][0]=MDlistripB[k][0];
MDlistripR[k][0]=MDlistripB[k][1];
MDlistripR[k][0]=MDlistripB[k][2];
k++;
MDlistripR[k][0]=MDlistripB[k][0];
MDlistripR[k][0]=MDlistripB[k][1];
MDlistripR[k][0]=MDlistripB[k][2];
k++;
}
}
}
}
void MULTIPLICAR_f(int MDlistrip[3][100])
{
int MDlistripB[3][100]={0};
int MDlistripR[3][100]={0};
int NF,NC,ND;
short k=1;
cout<<"\nIngrese numero de Filas de la matriz B";
cin>>NF;
cout<<"\nIngrese numero de Columnas de la matriz B";
cin>>NC;
cout<<"\nIngrese numero de Datos de la matriz B";
cin>>ND;
LLENAR_f(MDlistripB,NF,NC,ND);
if ((MDlistripB[0][0]==MDlistripB[0][0])&&(MDlistripB[0][0]==MDlistripB[0][0]))
{
if((MDlistripB[k][0]==MDlistrip[k][0])&&(MDlistripB[k][1]==MDlistrip[k][1]))
{
MDlistripR[k][0]=MDlistrip[k][0];
MDlistripR[k][0]=MDlistrip[k][0];
MDlistripR[k][2]=MDlistrip[k][2]*MDlistripB[k][2];
k++;
}
else
{
}
}
else
{
cout<<"\nNo se puede multiplicar las matrices";
}
}
void REDIMENCIONAR_f(int MDlistripR[3][100])
{
int k;
float aux[3][100];
for (k=0;k<=(MDlistripR[0][2]+1);k++)
{
aux[k][0]=MDlistripR[k][0];
aux[k][1]=MDlistripR[k][1];
aux[k][2]=MDlistripR[k][2];
}
}
void PROM_FILA_f(int MDlistrip[3][100])
{
int f;
short i,k;
float prom,ac=0;
cout<<"\nQue fila desea sacar el promedio?:\t";
cin>>f;
for (i=1;i<=(MDlistrip[0][2]+1);i++)
{
if(MDlistrip[i][0]=f)
{
for(k=i;k<=f;k++)
{
ac=ac+MDlistrip[i][2];
}
}
}
prom=ac/MDlistrip[0][1];
cout<<prom;
}
void CANTIDAD_IMPARES_f(int MDlistrip[3][100])
{
int c, ac=0;
short i,k;
cout<<"\nQue columna quiere ver impares?:\t";
cin>>c;
for (i=1;i<=(MDlistrip[0][2]+1);i++)
{
if(MDlistrip[i][1]=c)
{
for(k=i;k<=c;k++)
{
if(MDlistrip[k][2] %2 !=0 )
{
ac=ac+1;
}
}
}
}
cout<<"\nHay",ac,"impares en la columna",c;
}
void MOSTRAR_f(int MDlistrip[3][100])
{
short k;
for (k=0;k<=(MDlistrip[0][2]+1);k++)
{
cout<<MDlistrip[k][0],"\n";
cout<<MDlistrip[k][1],"\n";
cout<<MDlistrip[k][2],"\n";
}
}