Matrices - Ejercicios Resueltos
Matrices - Ejercicios Resueltos
Matrices - Ejercicios Resueltos
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
*<br />
* Este programa realiza la suma de todos los<br />
* elementos de una matriz cargada aleatoriamente<br />
*<br />
*/<br />
programa suma<br />
var<br />
mat:matriz[*,*]numerico<br />
m,n,i,j,suma:numerico<br />
inicio<br />
cls()<br />
leer(m)<br />
leer(n)<br />
dim (mat,m,n)<br />
//cargar la matriz con valores aleatorios<br />
desde i=1 hasta m<br />
{<br />
desde j=1 hasta n<br />
{<br />
mat[i,j]=random(100)<br />
}<br />
}<br />
//calcular la suma e imprimir la matriz completa<br />
suma = 0<br />
desde i=1 hasta m<br />
{<br />
desde j=1 hasta n<br />
{<br />
suma = suma + mat[i,j]<br />
imprimir(mat[i,j],"\t")<br />
}<br />
imprimir("\n")<br />
}<br />
imprimir("La suma es: "+str(suma)+"\n")<br />
fin<br />
/*<br />
* Este programa genera una matriz B a partir de otra A<br />
* eliminando una fila y una columna que se ingresan por<br />
* teclado.<br />
*/<br />
programa eliminar_fila_columna<br />
var<br />
M,N,i,j,i_b,j_b,fila,columna:numerico<br />
A,B:matriz[*,*]numerico<br />
inicio<br />
cls()<br />
leer(M)<br />
leer(N)<br />
dim (A,M,N)<br />
dim (B,M-1,N-1)<br />
//cargar la matriz con valores aleatorios<br />
desde i=1 hasta M<br />
{<br />
desde j=1 hasta N<br />
{<br />
A[i,j]=random(100)<br />
}<br />
}<br />
leer(fila)<br />
leer(columna)<br />
//eliminar fila y columna leidas<br />
i_b = 0<br />
desde i=1 hasta M<br />
{<br />
si(ifila)<br />
{<br />
i_b = i_b + 1<br />
j_b=0<br />
desde j=1 hasta N<br />
{<br />
si(jcolumna)<br />
{<br />
j_b = j_b + 1<br />
B[i_b,j_b] = A[i,j]<br />
}
fin<br />
}<br />
}<br />
}<br />
//imprimir matrices<br />
imprimir("\nMATRIZ A:\n")<br />
desde i=1 hasta M<br />
{<br />
desde j=1 hasta N<br />
{<br />
imprimir(A[i,j],"\t")<br />
}<br />
imprimir("\n")<br />
}<br />
imprimir("\nMATRIZ B:\n")<br />
desde i=1 hasta M-1<br />
{<br />
desde j=1 hasta N-1<br />
{<br />
imprimir(B[i,j],"\t")<br />
}<br />
imprimir("\n")<br />
}<br />
//codigo para imprimir la matriz B con la fila y columna sustraidas en blanco<br />
//para verificar el correcto funcionamiento del algoritmo<br />
imprimir("\nMATRIZ B con espacios para comprobar:\n")<br />
i_b=0<br />
desde i=1 hasta M<br />
{<br />
si(ifila)<br />
{<br />
i_b = i_b + 1<br />
j_b=0<br />
desde j=1 hasta N<br />
{<br />
si(jcolumna)<br />
{<br />
j_b = j_b + 1<br />
imprimir(B[i_b,j_b],"\t")<br />
sino<br />
imprimir("--\t")<br />
}<br />
}<br />
sino<br />
desde j=1 hasta N<br />
{<br />
imprimir("--\t")<br />
}<br />
}<br />
imprimir("\n")<br />
}<br />
/*<br />
* Los datos del censo de una población se almacenan en una matriz CENSO[M,N], donde<br />
* cada elemento representa la población de una manzana [m y n son pares]. Se pide<br />
* formar una nueva matriz RESUMEN donde cada elemento represente la población de un cuadro<br />
* de 2 * 2 manzanas de la matriz CENSO.<br />
*/<br />
programa matrices<br />
var<br />
m,n,i,j,ic,jc:numerico<br />
CENSO,RESUMEN:matriz[*,*]numerico<br />
inicio<br />
cls()<br />
//m,n deben ser pares segun enunciado del ejercicio<br />
leer(m)<br />
leer(n)<br />
dim (CENSO,m,n)<br />
dim (RESUMEN,m/2,n/2)<br />
//cargar CENSO con valores aleatorios<br />
desde i=1 hasta m<br />
{<br />
desde j=1 hasta n<br />
{<br />
CENSO[i,j]=random(100)
fin<br />
}<br />
}<br />
//calcular RESUMEN<br />
ic=1<br />
desde i=1 hasta m/2<br />
{<br />
jc=1<br />
desde j=1 hasta n/2<br />
{<br />
RESUMEN[i,j] = CENSO[ic,jc]+CENSO[ic+1,jc]+CENSO[ic,jc+1]+CENSO[ic+1,jc+1]<br />
jc = jc + 2<br />
}<br />
ic = ic + 2<br />
}<br />
//imprimir matrices<br />
imprimir("\nMATRIZ CENSO: \n")<br />
desde i=1 hasta m<br />
{<br />
desde j=1 hasta n<br />
{<br />
imprimir(CENSO[i,j],"\t")<br />
}<br />
imprimir("\n")<br />
}<br />
imprimir("\nMATRIZ RESUMEN: \n")<br />
desde i=1 hasta m/2<br />
{<br />
desde j=1 hasta n/2<br />
{<br />
imprimir(RESUMEN[i,j],"\t")<br />
}<br />
imprimir("\n")<br />
}<br />
/*<br />
* Encontrar la suma de todos los elementos que se encuentran por debajo<br />
* de la diagonal principal en una matriz cuadrada de NxN<br />
*/<br />
programa suma_elementos<br />
var<br />
n,i,j,suma:numerico<br />
m:matriz[*,*]numerico<br />
inicio<br />
cls()<br />
leer(n)<br />
dim(m,n,n)<br />
//cargar matriz con valores aleatorios<br />
desde i=1 hasta n<br />
{<br />
desde j=1 hasta n<br />
{<br />
m[i,j]=random(100)<br />
}<br />
}<br />
//calcular la suma de los elementos por debajo de la diagonal<br />
suma = 0<br />
desde i=2 hasta n<br />
{<br />
desde j=1 hasta i-1<br />
{<br />
suma = suma + m[i,j]<br />
}<br />
}<br />
//imprimir matriz y la suma<br />
imprimir("\nMATRIZ M: \n")<br />
desde i=1 hasta n<br />
{<br />
desde j=1 hasta n<br />
{<br />
imprimir(m[i,j],"\t")<br />
}<br />
imprimir("\n")<br />
}<br />
imprimir("\nLa suma de los elementos debajo de la diagonal es: ",suma)<br />
fin