Download - Guia Matrices[1]

Transcript
Page 1: Guia Matrices[1]

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]

Page 2: Guia Matrices[1]

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;}

Page 3: Guia Matrices[1]

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;

}

Page 4: Guia Matrices[1]

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;

}

Page 5: Guia Matrices[1]

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++){

Page 6: Guia Matrices[1]

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];

Page 7: Guia Matrices[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;

Page 8: Guia Matrices[1]

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;

}

Page 9: Guia Matrices[1]

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

Page 10: Guia Matrices[1]

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;

}

Page 11: Guia Matrices[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<=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.

Page 12: Guia Matrices[1]

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;

Page 13: Guia Matrices[1]

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++)

{

Page 14: Guia Matrices[1]

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];

Page 15: Guia Matrices[1]

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

{

Page 16: Guia Matrices[1]

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()

{

Page 17: Guia Matrices[1]

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;

}

}

Page 18: Guia Matrices[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;

}

Page 19: Guia Matrices[1]

SERVICIO NACIONAL DE APRENDIZAJE, SENAMÓDULO DE FORMACIÓN EVALUACIÓN DEL

APRENDIZAJE