Sunteți pe pagina 1din 16

ARREGLOS BIDIMENSIONALES

1. Escriba un programa que lea e imprima una matriz.


Definimos una matriz m[i][j] donde la cantidad mxima de filas y
columnas es 100, en la cual f y c denota el nmero de filas y columnas a
ingresar respectivamente.
Codificacin:
#include <iostream>
using namespace std;
int main()
{float m[100][100];
int i,j,f,c;
cout<<"INGRESE LA MATRIZ \n";
cout<<"================= \n";
cout<<"Ingrese el numero de filas:";cin>>f;
cout<<"Ingrese el numero de columnas:";cin>>c;
cout<<"\n";
for(i=0;i<f;i++)
for(j=0;j<c;j++)
{cout<<"m["<<i<<"]["<<j<<"]= ";
cin>>m[i][j];}
cout<<"\n";
for(i=0;i<f;i++)
{ for(j=0;j<c;j++)
cout<<m[i][j]<<"\t";
cout<<"\n\n";}
system("PAUSE");
return 0;
}

2. Escriba la transpuesta de una matriz.

Definimos una matriz m[i][j] donde la cantidad mxima de filas y


columnas es 100, en la cual f y c denota el nmero de filas y columnas a
ingresar respectivamente. El programa coloca todos los elementos de las
filas y columnas de la matriz ingresada en las columnas o filas.
#include <iostream>
using namespace std;
int main()
{float m[100][100];
int i,j,f,c;
cout<<"TRANSPUESTA DE UNA MATRIZ \n";
cout<<"========================= \n";
cout<<"Ingrese el numero de filas:";cin>>f;
cout<<"Ingrese el numero de columnas:";cin>>c;
cout<<"\n";
for(i=0;i<f;i++)
for(j=0;j<c;j++)
{cout<<"m["<<i<<"]["<<j<<"]= ";
cin>>m[i][j];}
cout<<"\n";
cout<<"MATRIZ ORIGINAL \n\n";
for(i=0;i<f;i++)
{ for(j=0;j<c;j++)
cout<<m[i][j]<<"\t";
cout<<"\n\n";
}
cout<<"MATRIZ TRANSPUESTA \n\n";
for(i=0;i<f;i++)
{ for(j=0;j<c;j++)
cout<<m[j][i]<<"\t";
cout<<"\n\n";}
system("PAUSE");
return 0;
}

3. Escriba un programa que genere una matriz identidad de orden


n.
Una matriz identidad es aquella en la cual todos los elementos de la
diagonal principal son igual a la unidad. Definimos una matriz m[i][j]
donde la cantidad mxima de filas y columnas es 100, en la cual n es el
orden de la matriz a ingresar, donde si i=j entonces m[i][j]=1 por el
contrario m[i][j]=0.
#include <iostream>
using namespace std;
int main()
{float m[100][100];
int i,j,f,c,n;
cout<<"INGRESE IDENTIDAD \n";
cout<<"================= \n";
cout<<"Ingrese el orden de la matriz:";
cin>>n;
cout<<"\n";
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ if(i==j)m[i][j]=1;
else m[i][j]=0;}
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
cout<<m[i][j]<<"\t";
cout<<"\n\n";}
system("PAUSE");
return 0;
}

4. busque un nmero dentro de una matriz y determine la


posicin y si existen o no el nmero buscado, use el mtodo de
bsqueda secuencial.
#include <iostream>
using namespace std;
int main()
{int nb,i,j,p1,p2,f,c;
string r="";
int n[50][50];
cout<<"BUSQUEDA DE UN NUMERO EN UNA MATRIZ \n";
cout<<"=================================== \n\n";
cout<<"ingresar el numero de filas:";
cin>>f;
cout<<"Ingresar el numero de columnas:";
cin>>c;
cout<<endl;
for(i=0;i<f;i++)
for(j=0;j<c;j++)
{cout<<"n["<<i<<"]"<<"["<<j<<"]=";
cin>>n[i][j];}
cout<<endl;
for(i=0;i<f;i++)
{for(j=0;j<c;j++)
cout<<n[i][j]<<"\t";
cout<<"\n\n";}
cout<<"Numero a buscar:";
cin>>nb;
cout<<endl;
r="No existe";
p1=-1;
p2=-1;
for(i=0;i<=f;i++)
{for(j=0;j<=c;j++)
{if(n[i][j]==nb)
{r="si existe";
p1=i;
p2=j;
break;
}
}
if(r=="si existe")
break;
}

cout<<"\n";
cout<<"Respuesta: "<<r<<"\n";
cout<<"Posicion [i]:"<<p1<<"\n";
cout<<"Posicion [j]:"<<p2<<"\n";
cout<<endl;

system("PAUSE");
return 0;
}

5. Ingrese una matriz y obtenga el nmero mayor ingresado.

#include <iostream>
using namespace std;
int main()
{int i,j,f,c,m;
int n[50][50];
cout<<"NUMERO MAYOR INGRESADO \n";
cout<<"====================== \n\n";
cout<<"ingresar el numero de filas:";
cin>>f;
cout<<"Ingresar el numero de columnas:";
cin>>c;
cout<<endl;
for(i=0;i<f;i++)
for(j=0;j<c;j++)

{cout<<"n["<<i<<"]"<<"["<<j<<"]=";
cin>>n[i][j];}
cout<<endl;
for(i=0;i<f;i++)
{for(j=0;j<c;j++)
cout<<n[i][j]<<"\t";
cout<<"\n\n";}
m=n[0][0];
for(i=0;i<f;i++)
{for(j=0;j<c;j++)
{if(n[i][j]>m)
m=n[i][j];

}
}
cout<<endl;
cout<<"El numero mayor en la matriz es:"<<m<<endl;
cout<<endl;
system("PAUSE");
return 0;
}

6. Almacenar en una matriz y obtenga la cantidad de pares e


impares.
#include <iostream>
using namespace std;
int main()
{int i,j,f,c;
int n[50][50],cp=0,ci=0;
cout<<"CANTIDAD DE NUMEROS PARES E IMPARES \n";
cout<<"===================================
\n\n";
cout<<"ingresar el numero de filas:";
cin>>f;
cout<<"Ingresar el numero de columnas:";
cin>>c;

cout<<endl;
for(i=0;i<f;i++)
for(j=0;j<c;j++)

{cout<<"n["<<i<<"]"<<"["<<j<<"]=";
cin>>n[i][j];}
cout<<endl;
for(i=0;i<f;i++)
{for(j=0;j<c;j++)
cout<<n[i][j]<<"\t";
cout<<"\n\n";}
for(i=0;i<f;i++)
{for(j=0;j<c;j++)
{if(n[i][j]%2==0)
cp=cp+1;
else
ci=ci+1;
}
}
cout<<endl;
cout<<"Cantidad de numeros pares: "<<cp<<endl;
cout<<"Cantidad de numeros impares: "<<ci<<endl;
cout<<endl;
system("PAUSE");
return 0;
}

7.
Se tiene un grupo de fbricas y sus producciones mensuales,
Cul es la produccin mensual del conjunto?
Definimos una matriz m[i][j] donde la cantidad mxima de filas y columnas
es 100, en la cual f es una fbrica y c el mes.
#include <iostream>
using namespace std;
int main()
{float m[100][100];
int i,j,f,c;
cout<<"PRODUCCION DE UNA
FABRICA \n";

cout<<"========================= \n\n";
cout<<"Ingrese el numero de fabricas:";cin>>f;
cout<<"Ingrese el numero de meses:";cin>>c;
cout<<"\n";
for(i=0;i<f;i++)
{cout<<"Fabrica: "<<i<<"\n";
cout<<endl;
for(j=0;j<c;j++)
{cout<<"m["<<i<<"]["<<j<<"]= ";
cin>>m[i][j];}

cout<<endl;
}
cout<<endl;
for(i=0;i<f;i++)
{ for(j=0;j<c;j++)
cout<<m[i][j]<<"\t";
cout<<"\n\n";}
for(j=0;j<c;j++)
{ float sumacol=0;
for(i=0;i<f;i++)
sumacol=sumacol + m[i][j];
cout<<"En el mes ["<<j<<"]"<<" se ha producido:
"<<sumacol<<"\n";
}
cout<<endl;
system("PAUSE");
return 0;
}

7. Determinar cuntos nmeros de una matriz se encuentran en


otra matriz.
#include <iostream>
using namespace std;
int main()
{float a[50],b[50];
int i,j,n,cant=0;
cout<<"INGRESE EL PRIMER VECTOR \n";
cout<<"======================== \n";
cout<<"Ingrese el tamao de los vectores:";cin>>n;
cout<<"\n";
for(i=0;i<n;i++)
{cout<<"a["<<i<<"]= ";
cin>>a[i];}
cout<<"\n";
for(i=0;i<n;i++)

{ cout<<a[i];
cout<<"\n\n";}
cout<<"INGRESE EL SEGUNDO
VECTOR\n";

cout<<"========================= \n\n";
cout<<"\n";
for(i=0;i<n;i++)
{cout<<"b["<<i<<"]= ";
cin>>b[i];}
cout<<"\n";
for(i=0;i<n;i++)
{cout<<b[i];
cout<<"\n\n";}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{if(a[i]==b[j])
cant=cant + 1;
}
}
cout<<endl;
cout<<"La cantidad de numeros iguales es: "<<cant<<endl;
cout<<endl;
system("PAUSE");
return 0;
}

9. Lea dos matrices y obtenga la suma.


Definimos dos matrices a[i][j] y b[i][j] donde la cantidad mxima de filas y
columnas es 100, en la cual f1 y c1 es el nmero de filas y columnas a
ingresar respectivamente para la matriz a[i][j] y f2 y c2 es el nmero de filas
y columnas a ingresar respectivamente para la matriz b[i][j], obtendremos la
suma solo si f1=f2 y c1=c2.
#include <iostream>
using namespace std;
int main()
{float a[100][100],b[100][100];
int i,j,f1,c1,f2,c2;
cout<<"INGRESE LA PRIMERA MATRIZ \n";
cout<<"========================= \n";
cout<<"Ingrese el numero de filas:";cin>>f1;
cout<<"Ingrese el numero de columnas:";cin>>c1;
cout<<"\n";
for(i=0;i<f1;i++)
for(j=0;j<c1;j++)
{cout<<"a["<<i<<"]["<<j<<"]= ";
cin>>a[i][j];}
cout<<"\n";
for(i=0;i<f1;i++)
{ for(j=0;j<c1;j++)
cout<<a[i][j]<<"\t";
cout<<"\n\n";}
cout<<"INGRESE LA SEGUNDA MATRIZ \n";
cout<<"========================= \n\n";
cout<<"Ingrese el numero de filas:";cin>>f2;
cout<<"Ingrese el numero de columnas:";cin>>c2;
cout<<"\n";
for(i=0;i<f2;i++)
for(j=0;j<c2;j++)
{cout<<"b["<<i<<"]["<<j<<"]= ";
cin>>b[i][j];}
cout<<"\n";
for(i=0;i<f2;i++)
{ for(j=0;j<c2;j++)
cout<<b[i][j]<<"\t";
cout<<"\n\n";}

cout<<"SUMA DE LA MATRIZ \n";


cout<<"================= \n\n";
if(f1==f2 && c1==c2)
{for(i=0;i<f1;i++)
{ for(j=0;j<c1;j++)
cout<<a[i][j] + b[i][j]<<"\t";
cout<<"\n\n";}
cout<<endl;}
else
cout<<"No se puede sumar
matrices";
cout<<"\n\n";

las

system("PAUSE");
return 0;
}

10. Obtengan el producto


dos matrices.

de

Definimos dos matrices a[i][j] y b[i][j] donde la cantidad mxima de filas y


columnas es 100, en la cual f1 y c1 es el nmero de filas y columnas a
ingresar respectivamente para la matriz a[i][j] y f2 y c2 es el nmero de filas
y columnas a ingresar respectivamente para la matriz b[i][j], obtendremos el
producto solo si c1=f2.
#include <iostream>
using namespace std;
int main()
{float a[100][100],b[100][100],p[100][100];
int i,j,f1,c1,f2,c2,k;
cout<<"INGRESE LA PRIMERA MATRIZ \n";
cout<<"========================= \n";
cout<<"Ingrese el numero de filas:";cin>>f1;
cout<<"Ingrese el numero de columnas:";cin>>c1;
cout<<"\n";
for(i=0;i<f1;i++)
for(j=0;j<c1;j++)
{cout<<"a["<<i<<"]["<<j<<"]= ";
cin>>a[i][j];}
cout<<"\n";
for(i=0;i<f1;i++)
{ for(j=0;j<c1;j++)
cout<<a[i][j]<<"\t";
cout<<"\n\n";}
cout<<"INGRESE LA SEGUNDA MATRIZ \n";
cout<<"========================= \n\n";
cout<<"Ingrese el numero de filas:";cin>>f2;
cout<<"Ingrese el numero de columnas:";cin>>c2;
cout<<"\n";
for(i=0;i<f2;i++)
for(j=0;j<c2;j++)
{cout<<"b["<<i<<"]["<<j<<"]= ";
cin>>b[i][j];}
cout<<"\n";
for(i=0;i<f2;i++)
{ for(j=0;j<c2;j++)
cout<<b[i][j]<<"\t";
cout<<"\n\n";}
cout<<"PRODUCTO DE MATRICES \n";

cout<<"==================== \n\n";
if(c1==f2)
{for(i=0;i<f1;i++)
{for(j=0;j<c2;j++)
{ p[i][j]=0;
for(k=0;k<c1;k++)
p[i][j] = p[i][j] + a[i][k]*b[k][j];
cout<<p[i][j]<<"\t";}
cout<<"\n\n";}
cout<<endl;}

else
cout<<"No se puede multiplicar las matrices";
cout<<"\n\n";
system("PAUSE");
return 0;
}