Anda di halaman 1dari 15

SERVICIO NACIONAL DE APRENDIZAJE, SENA

MÓ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

Fila o Renglon Mat [R,C]


[R]
1,1 1,2 1,3 1,4
2,1 2,2 2,3 2.4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4

Columna
[C]

Llenado de una matriz

• Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para

• Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓ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;
}

Ejercicios
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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 numeros q desee"<<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 total de la suma de toda la matriz es de:
"<<conts<<endl;
system("pause");
return 0;
}

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()
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

{
int mat[3][3],val,may,pos1,pos2;
may=1;
cout<<"ingrese los q desee colocar en la matriz"<<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<<"el valor mayor de toda la matriz es : "<<may<<" "<<"y
esta situada en la pasicion "<<pos1<<"."<<pos2<<endl;
system("pause");
return 0;
}

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 numeros q desea ingresar en la matriz"<<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];
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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;
for(int i=1;i<=3;i++)
{
cout<<"la suma de la fila "<<i<<" es: "<<vec1[i]<<endl;
}
for(int o=1;o<=3;o++)
{
cout<<"la suma de la columna "<<o<<" es: "<<vec2[o]<<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;
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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

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];
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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;

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;
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

system("pause");

return 0;

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

cout<<" "<<vec[i]<<endl;
}
}
system("pause");
return 0;

}
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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

}
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

7) Hacer un algoritmo que llene una matriz de 2* 3 y que almacene toda la matriz en
un vector. Imprimir el vector resultante.

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

cin>>val;

mat[a][e]=val;

sum1=sum1+mat[1][1];
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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

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];
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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

cout<<" "<<mat[i][j]<<" "<<endl;

cout<<"el vector resultante es: "<<endl;


SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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

int mat[5][6],contp,contn,contne,val;

contp=0;

contn=0;

contne=0;

cout<<"ingrese los valores de la matriz"<<endl;


SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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;

cout<<"la matriz resultante es: "<<endl;

for (int i=1;i<=5;i++)

{
SERVICIO NACIONAL DE APRENDIZAJE, SENA
MÓDULO DE FORMACIÓN EVALUACIÓN DEL
APRENDIZAJE

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;

Anda mungkin juga menyukai