28.11.2012 Views

Matrices - Ejercicios Resueltos

Matrices - Ejercicios Resueltos

Matrices - Ejercicios Resueltos

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!