guia matrices[1]
TRANSCRIPT
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
Arreglos-Matrices
Las matrices son arreglos bidimensionales en las cuales se almacena un conjunto de datos del mismo tipo, estos datos se almacenan en filas y columnas.
Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el número de filas o reglones y “N” el numero de columnas.
Para representar una matriz se necesita un nombre de matriz acompañado de dos índices.
Mat [R,C]
Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.
Representación gráfica de una matriz
Mat [R,C]
1,1 1,2 1,3 1,42,1 2,2 2,3 2.43,1 3,2 3,3 3,44,1 4,2 4,3 4,4
Llenado de una matriz
Por renglonesHacer para R = 1 a 5 Hacer para C = 1 a 5
Leer Mat [R,C] Fin-paraFin-para
Por columnasHacer para C = 1 a 5 Hacer para R = 1 a 5
Leer Mat [R,C] Fin-paraFin-para
Fila o Renglon
[R]
Columna[C]
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).
Llenado e impresión de una Matriz en C++
# include <iostream>using namespace std;int main(){
int mat[3][3];for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){cout<<"ingrese el valor de "<<i<<","<<j<<endl;cin>>mat[i][j];}
}for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){if(j<3)
{cout<<" "<<mat[i][j];
}else
{cout<<" "<<mat[i][j]<<endl;
}}
}system ("pause");return 0;}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
Ejercicios
1) Hacer un algoritmo que almacene números en una matriz de 3 * 2. Imprimir la suma de los números almacenados en la matriz.
#include<iostream>using namespace std;int main(){
int mat[3][2],conts,val;conts=0;cout<<"ingrese los valores de la matriz"<<endl;cout<<endl;for (int a=1;a<=3;a++){
for (int e=1;e<=2;e++){
cin>>val;conts=conts+val;val=mat[a][e];
}}cout<<endl;cout<<"el valor de la suma de toda la matriz es de:
"<<conts<<endl;cout<<endl;system("pause");return 0;
}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
2) Hacer un algoritmo que llene una matriz de 3 * 3 y determine la posición [renglon ,columna] del numero mayor almacenado en la matriz. Los números son diferentes.
#include<iostream>using namespace std;int main(){
int mat[3][3],val,may,pos1,pos2;may=1;cout<<"ingrese los valores de la matriz"<<endl;cout<<endl;for (int a=1;a<=3;a++){
for (int e=1;e<=3;e++){
cin>>val;if (val>may){
may=val;pos1=a;pos2=e;
}else{
may=may;}val=mat[a][e];
}}cout<<endl;cout<<"el valor mayor de toda la matriz es : "<<may<<" "<<"en la
posicion "<<pos1<<"."<<pos2<<endl;cout<<endl;system("pause");return 0;
}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
3) Hacer un algoritmo que llene una matriz de 3 * 3. Calcular la suma de cada renglón y almacenarla en un vector, la suma de cada columna y almacenarla en otro vector.
#include<iostream>using namespace std;int main(){
int mat[3][3],vec1[3],vec2[3],val,sum1,sum2,sum3,sum4,sum5,sum6;sum1=0;sum2=0;sum3=0;sum4=0;sum5=0;sum6=0;cout<<"ingrese los valores de la matriz"<<endl;cout<<endl;for (int a=1;a<=3;a++){
for (int e=1;e<=3;e++){
cin>>val;mat[a][e]=val;
}}
sum1=mat[1][1];sum1=sum1+mat[1][2];sum1=sum1+mat[1][3];sum2=sum2+mat[2][1];sum2=sum2+mat[2][2];sum2=sum2+mat[2][3];sum3=sum3+mat[3][1];sum3=sum3+mat[3][2];sum3=sum3+mat[3][3];sum4=sum4+mat[1][1];sum4=sum4+mat[2][1];sum4=sum4+mat[3][1];sum5=sum5+mat[1][2];sum5=sum5+mat[2][2];sum5=sum5+mat[3][2];sum6=sum6+mat[1][3];sum6=sum6+mat[2][3];sum6=sum6+mat[3][3];vec1[1]=sum1;
vec1[2]=sum2; vec1[3]=sum3; vec2[1]=sum4; vec2[2]=sum5; vec2[3]=sum6;cout<<endl;for(int i=1;i<=3;i++){
cout<<"la suma de la fila "<<i<<" es: "<<vec1[i]<<endl; cout<<endl;}for(int o=1;o<=3;o++){
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
cout<<"la suma de la columna "<<o<<" es: "<<vec2[o]<<endl; cout<<endl;}system("pause");return 0;
}
4) Hacer un algoritmo que llene una matriz de 5 * 5. Sumar las columnas e imprimir que columna tuvo la máxima suma y la suma de esa columna.
#include<iostream>
using namespace std;
int main()
{
int mat[5][5],vec[5],val,sum1,sum2,sum3,sum4,sum5,may,pos;
may=0;
sum1=0;
sum2=0;
sum3=0;
sum4=0;
sum5=0;
cout<<"ingrese los valores de la matriz"<<endl;
cout<<endl;
for (int a=1;a<=5;a++)
{
for (int e=1;e<=5;e++)
{
cin>>val;
mat[a][e]=val;
}
}
sum1=sum1+mat[1][1];
sum1=sum1+mat[2][1];
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
sum1=sum1+mat[3][1];
sum1=sum1+mat[4][1];
sum1=sum1+mat[5][1];
sum2=sum2+mat[1][2];
sum2=sum2+mat[2][2];
sum2=sum2+mat[3][2];
sum2=sum2+mat[4][2];
sum2=sum2+mat[5][2];
sum3=sum3+mat[1][3];
sum3=sum3+mat[2][3];
sum3=sum3+mat[3][3];
sum3=sum3+mat[4][3];
sum3=sum3+mat[5][3];
sum4=sum4+mat[1][4];
sum4=sum4+mat[2][4];
sum4=sum4+mat[3][4];
sum4=sum4+mat[4][4];
sum4=sum4+mat[5][4];
sum5=sum5+mat[1][5];
sum5=sum5+mat[2][5];
sum5=sum5+mat[3][5];
sum5=sum5+mat[4][5];
sum5=sum5+mat[5][5];
vec[1]=sum1;
vec[2]=sum2;
vec[3]=sum3;
vec[4]=sum4;
vec[5]=sum5;
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
for (int i=1;i<=5;i++)
{
if (vec[i]>may)
{
may=vec[i];
pos=i;
}
else
{
may=may;
}
}
cout<<"el valor de la columna mayor es: "<<endl;
cout<<"# "<<pos<<endl;
cout<<"la suma de la mayor columna es: "<<may<<endl;
system("pause");
return 0;
}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
5) Hacer un algoritmo que llene una matriz de 3 * 3 y que almacene la diagonal principal en un vector. Imprimir el vector resultante.
#include<iostream>
using namespace std;
int main()
{
int mat[3][3],vec[3],val;
cout<<"ingrese los valores de la matriz"<<endl;
for (int k=1;k<=3;a++)
{
for (int e=1;e<=3;e++)
{
cin>>val;
mat[k][e]=val;
}
}
vec[1]=mat[1][1];
vec[2]=mat[2][2];
vec[3]=mat[3][3];
cout<<"el vector resultante es: "<<endl;
for (int i=1;i<=3;i++)
{
if (i<4)
{
cout<<" "<<vec[i];
}
else
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
{
cout<<" "<<vec[i]<<endl;
}
} system("pause");
return 0;
}
6) Hacer un algoritmo que llene una matriz de 4 * 4 y que almacene en la diagonal principal unos y en las demás posiciones ceros.
#include<iostream>
using namespace std;
int main()
{
int mat[3][3];
for (int s=1;s<=3;a++)
{
for (int e=1;e<=3;e++)
{
if (s==e)
{
mat[s][e]=1;
}
else
{
mat[s][e]=0;
}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
}
}
cout<<"la matriz resultante es: "<<endl;
for (int i=1;i<=3;i++)
{
for (int l=1;l<=3;j++)
{
if (l<3)
{
cout<<" "<<mat[i][l];
}
else
{
cout<<" "<<mat[i][l]<<endl;
}
}
}
cout<<endl;
cout<<endl;
system("pause");
return 0;
}
7) Hacer un algoritmo que llene una matriz de 2* 3 y que almacene toda la matriz en un vector. Imprimir el vector resultante.
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
#include<iostream>
using namespace std;
int main()
{
int mat[2][3],vec[6],val,cont;
cont=1;
cout<<"ingrese los valores de la matriz"<<endl;
for (int a=1;a<=2;a++)
{
for (int e=1;e<=3;e++)
{
cin>>val;
mat[a][e]=val;
vec[cont]=val;
cont=cont+1;
}
} cout<<"el vector resultante es: "<<endl;
for (int i=1;i<=6;i++)
{
if (i<6)
{
cout<<" "<<vec[i];
}
else
{
cout<<" "<<vec[i]<<endl;
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
}
}
system("pause");
return 0;
}
8) Hacer un algoritmo que llene una matriz de 4 * 4, que almacene la suma de los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.
#include<iostream>
using namespace std;
int main()
{
int mat[4][4],vec[8],val,sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8;
sum1=0;
sum2=0;
sum3=0;
sum4=0;
sum5=0;
sum6=0;
sum7=0;
sum8=0;
cout<<"ingrese los valores de la matriz"<<endl;
for (int a=1;a<=4;a++)
{
for (int e=1;e<=4;e++)
{
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
cin>>val;
mat[a][e]=val;
}
}
sum1=sum1+mat[1][1];
sum1=sum1+mat[1][2];
sum1=sum1+mat[1][3];
sum1=sum1+mat[1][4];
sum2=sum2+mat[2][1];
sum2=sum2+mat[2][2];
sum2=sum2+mat[2][3];
sum2=sum2+mat[2][4];
sum3=sum3+mat[3][1];
sum3=sum3+mat[3][2];
sum3=sum3+mat[3][3];
sum3=sum3+mat[3][4];
sum4=sum4+mat[4][1];
sum4=sum4+mat[4][2];
sum4=sum4+mat[4][3];
sum4=sum4+mat[4][4];
sum5=sum5+mat[1][1];
sum5=sum5+mat[2][1];
sum5=sum5+mat[3][1];
sum5=sum5+mat[4][1];
sum6=sum6+mat[1][2];
sum6=sum6+mat[2][2];
sum6=sum6+mat[3][2];
sum6=sum6+mat[4][2];
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
sum7=sum7+mat[1][3];
sum7=sum7+mat[2][3];
sum7=sum7+mat[3][3];
sum7=sum7+mat[4][3];
sum8=sum8+mat[1][4];
sum8=sum8+mat[2][4];
sum8=sum8+mat[3][4];
sum8=sum8+mat[4][4];
vec[1]=sum1;
vec[2]=sum2;
vec[3]=sum3;
vec[4]=sum4;
vec[5]=sum5;
vec[6]=sum6;
vec[7]=sum7;
vec[8]=sum8;
cout<<endl;
cout<<"la matriz resultante es: "<<endl;
for (int i=1;i<=4;i++)
{
for (int j=1;j<=4;j++)
{
if (j<4)
{
cout<<" "<<mat[i][j]<<" ";
}
else
{
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
cout<<" "<<mat[i][j]<<" "<<endl;
}
}
}
cout<<"el vector resultante es: "<<endl;
cout<<"en filas y en columnas"<<endl;
for (int i=1;i<=8;i++)
{
if (i<8)
{
cout<<" "<<vec[i];
}
else
{
cout<<" "<<vec[i]<<endl;
}
}
system("pause");
return 0;
}
9) Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números almacenados son ceros, cuantos son positivos y cuantos son negativos.
#include<iostream>
using namespace std;
int main()
{
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
int mat[5][6],contp,contn,contne,val;
contp=0;
contn=0;
contne=0;
cout<<"ingrese los valores de la matriz"<<endl;
for (int a=1;a<=5;a++)
{
for (int e=1;e<=6;e++)
{
cin>>val;
if (val==0)
{
mat[a][e]=val;
contne=contne+1;
}
else
{
if(val<0)
{
mat[a][e]=val;
contn=contn+1;
}
else
{
mat[a][e]=val;
contp=contp+1;
}
}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE
}
}
cout<<"la matriz resultante es: "<<endl;
for (int i=1;i<=5;i++)
{
for (int j=1;j<=6;j++)
{
if (j<6)
{
cout<<" "<<mat[i][j]<<" ";
}
else
{
cout<<" "<<mat[i][j]<<" "<<endl;
}
}
}
cout<<"la cantidad de valores positivos es: "<<contp<<endl;
cout<<"la cantidad de valores negativos es: "<<contn<<endl;
cout<<"la cantidad de ceros es: "<<contne<<endl;
system("pause");
return 0;
}
SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE