Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 Matrices I 2020
3 Matrices I 2020
(N = 5 impar)
Actividad grupal: (dirigida por el profesor para identificar elementos de
una matriz)
Teniendo la matriz definida usar un solo “Para” hallar la suma de los elementos que pertenecen a ppal1 y
sec1
Teniendo la matriz definida usar un solo “Para” hallar la suma de los elementos que pertenecen a ppal2 y
sec2 cuando N ≠ M
Teniendo la matriz definida usar un solo “Para” hallar la suma de los elementos que pertenecen a ppal1,
ppal2, sec1 y sec2 cuando N ≠ M
Teniendo definida una matriz cuadrada de orden par, hallar la suma de los elementos A1, A2, A3, A4, A5
Teniendo definida una matriz cuadrada de orden impar, hallar la suma de los elementos A1, A2, A3, A4,
A5
Actividad:
Leer NA (5≤ NA≤ 13) impar
Leer MA (4≤ NA≤ 12) y con MA < NA
Leer matriz A de NA filas por MA columnas
Escribir la Matriz A leída
Con la matriz leída formar una matriz CA donde no aparezcan ni la primera y última filas y ni la primera y
últimas columnas (o sea eliminando primera y última filas y columnas)
Escribir la matriz CA obtenida
Con la matriz CA calcular la suma de los elementos negativos que están sobre la diagonal secundaria 2, la
cantidad de números positivos qué pertenecen a la diagonal secundaria 2, el valor absoluto del promedio
de la suma de los elementos que están por debajo de la diagonal secundaria 2
Para ilustración de lo que se pide, examinen los dos ejemplos (para N impar y para N par) que
aparecen a continuación:
Taller:
Elaborar un algoritmo que realice las siguientes tareas:
Que a través de una función genere y guarde en memoria 5 valores, a saber:
Número de filas: NA y NB; (5<=N<= 15) y número de columnas: MA y MB;
(7<=M<=21), tal que NA ≠ MA; NB ≠ MB; NA > NB y MA > MB
Tipo de superposición: T; (1,2,3,4)
Nota: en el cuerpo del programa principal deben presentarse los 5 datos
generados
Ayuda: use un vector
Que a través de una función genere y guarde en memoria dos matrices [A]NA x MA y
[B] NB x MB , de tal forma que la matriz [A] sea más grande que la matriz [B] (tanto en
filas como en columnas), donde los elementos de la matriz A y matriz B, A [i,j] y B[i,j]
estén en los rangos: ( -99.99 <= A[i,j]; B[i,j] <= +99.99). {Se deben hacer dos
invocaciones, una para [A] y otra para [B]}
Que a través de una función presente todos los datos generados de [A] y [B]. {Se
deben hacer dos invocaciones, una para [A] y otra para [B]}
Que a través de una función cree una matriz [C] donde los elementos de la matriz
[C] se definen como sigue: C[i,j]=A[i,j]+B[i, j] donde estén definidos los elementos (i,j)
en cada una de las matrices y C[i,j]=A[i,j] donde los elementos (i,j) solo están
definidos en la matriz [A] de acuerdo al valor generado de la variable T (tipo de
superposición)
=> Superposición Superior Izquierda (1 en la gráfica adjunta), T=1
=> Superposición Superior Derecha (2 en la gráfica adjunta), T=2
=> Superposición Inferior Izquierda (3 en la gráfica adjunta), T=3
=> Superposición Inferior Derecha (4 en la gráfica adjunta), T=4
Que a través de una función presente la matriz [C] obtenida (la misma función que
presenta los valores de [A] y [B])
Ayuda
Superior izquierda
Inferior derecha
Superior derecha
Inferior izquierda
// 1
// funcion que no recibe ni devuelve
Funcion Saludar
Escribir "Hola mundo!"
FinFuncion
// 2
Funcion res1 = Aleatorios()
Definir res1 como Entero
res1 = Azar(7) +3
Mientras res1 % 2 = 0 Hacer
res1 = Azar(7) +3
FinMientras
FinFuncion
Funcion EscribaMatrix(x,n)
Definir i,j Como Entero
Escribir " Matriz de :",n,"x",n
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar " ... "
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar x[i,j]," "
FinPara
Escribir " "
FinPara
FinFuncion
Algoritmo SubProcesoMatriz0
Definir i,j,N,M,S Como Entero
N=Aleatorios(); M=N
Dimension S[9,9]
Para i<-0 Hasta N-1 Con Paso 1 Hacer
Para j<-0 Hasta M-1 Con Paso 1 Hacer
S[i,j]=Azar(90)+10
FinPara
FinPara
EscribaMatrix(S,N)
FinAlgoritmo
// 2
// 3
Funcion res1 = Aleatorios()
Definir res1 como Entero
res1 = Azar(7) +3
FinFuncion
Funcion EscribaMatrix(x,n)
Definir i,j Como Entero
Escribir " Matriz de :",n,"x",n
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar " ... "
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar x[i,j]," "
FinPara
Escribir " "
FinPara
Escribir " "
FinFuncion
Funcion vlr=CalcularMayor(x,n)
Definir i,j,IM,JM, tmp Como Entero
Definir vlr Como Real
tmp=x[0,0];IM=0;JM=0
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Si x[i,j]>tmp Entonces
tmp=x[i,j];IM=i;JM=j
FinSi
FinPara
FinPara
vlr=tmp+IM/10+JM/100
FinFuncion
Algoritmo SubProcesoMatriz0_A4
Definir i,j,N,M,S Como Entero
Definir Mayor,tmp Como Real
N=Aleatorios(); M=N
Dimension S[10,10]
Para i<-0 Hasta N-1 Con Paso 1 Hacer
Para j<-0 Hasta M-1 Con Paso 1 Hacer
S[i,j]= Azar(90)+10
FinPara
FinPara
EscribaMatrix(S,N)
Mayor=CalcularMayor(S,N)
Escribir " "
Escribir " ...",Mayor
N=trunc(Mayor)
tmp=Mayor-N
i=trunc(tmp*10)
tmp=tmp/10
j=trunc(tmp*10)
Escribir " ",i,", ",j
FinAlgoritmo
// 3
//4
Funcion res1 = Aleatorios()
Definir res1 como Entero
res1 = Azar(7) +3
Mientras res1 % 2 = 0 Hacer
res1 = Azar(7) +3
FinMientras
FinFuncion
Funcion EscribaMatrix(x,n)
Definir i,j Como Entero
Escribir " Matriz de :",n,"x",n
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar " ... "
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar x[i,j]," "
FinPara
Escribir " ";
FinPara
Escribir " ";
FinFuncion
Funcion a4=CalcularA4(x,n)
Definir a4,k,m Como Entero
a4=0;m = trunc(n/2);
Escribir"m : ",m;Escribir"";
Escribir sin saltar " ..."
Para k<-0 Hasta n-1 Con Paso 1 Hacer
Escribir sin saltar x[k,m], " "
a4=a4+x[k,m]
FinPara
Escribir " "
FinFuncion
Algoritmo SubProcesoMatriz0_A4
Definir i,j,N,M,S,A4 Como Entero
N=Aleatorios(); M=N
Dimension S[9,9]
Para i<-0 Hasta N-1 Con Paso 1 Hacer
Para j<-0 Hasta M-1 Con Paso 1 Hacer
S[i,j]=Azar(90)+10
FinPara
FinPara
EscribaMatrix(S,N)
A4=CalcularA4(S,N)
Escribir " "
Escribir " ...",trunc(N/2),", Vertical:",A4
FinAlgoritmo
// 4
//5
Funcion res1 = AleatorioNimpar()
Definir res1 como Entero
res1 = Azar(9)+3
Mientras res1 % 2 = 0 Hacer
res1 = Azar(9)+3
FinMientras
FinFuncion
Funcion EscribaMatrix(x,n)
Definir i,j Como Entero
Escribir " Matriz de :",n,"x",n
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar " ... "
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar x[i,j]," "
FinPara
Escribir " "
FinPara
FinFuncion
Funcion res3=CalcularSuma(x,n,f)
Definir j,k,m Como Entero
Definir res3 como Real
res3=0.0;m=trunc(n/2);j=n
Si f=0 Entonces // sumar la vertical y la horizontal
Para k<-0 Hasta n-1 Con Paso 1 Hacer
res3=res3+x[k,m]+x[m,k]
FinPara
res3=res3-x[m,m]
Sino // sumar la diagonal principal y la diagonal secundaria
Para k<-0 Hasta n-1 Con Paso 1 Hacer
j=j-1
res3=res3+x[k,k]+x[k,j]
FinPara
res3=res3-x[m,m]
FinSi
FinFuncion
Algoritmo SubProcesos_Tema_A
Definir i,j,N,F Como Entero
Definir A,Suma Como Real
N=AleatorioNimpar()
Dimension A[11,11]
Para i<-0 Hasta N-1 Con Paso 1 Hacer
Para j<-0 Hasta N-1 Con Paso 1 Hacer
A[i,j]= Azar(199)-99 + (Azar(199)-99 )/100
FinPara
FinPara
F=AleatorioF()
EscribaMatrix(A,N)
Suma=CalcularSuma(A,N,F)
Escribir " "
Escribir " ... F:",F," ,Suma:",Suma
FinAlgoritmo
//5
//6
// diag ppal => i=j
// diag sec => i+j = M-1
// encima diag ppal => i<j
// debajo diag ppal => i>j
// encima diag sec => i+j<M-1
// debajo diag sec => i+j>M-1
Funcion EscribaMatrix(x,n)
Definir i,j Como Entero
Escribir " Matriz de :",n,"x",n
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar " ... "
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Escribir Sin Saltar x[i,j]," "
FinPara
Escribir " "
FinPara
FinFuncion
Funcion res3=CalcularSuma(x,n,f)
Definir i,j,M Como Entero
Definir res3 como Real
res3=0.0;M=n
Para i<-0 Hasta n-1 Con Paso 1 Hacer
Para j<-0 Hasta n-1 Con Paso 1 Hacer
Si (f=0) & ((i<j & i+j<M-1) | (i>j & i+j>M-1)) Entonces
res3=res3+x[i,j]
FinSi
Si (f=1) & (i=j | i+j=M-1) Entonces
res3=res3+x[i,j]
FinSi
Si (f=2) & ((i>j & i+j<M-1) | (i+j>M-1 & i<j)) Entonces
res3=res3+x[i,j]
FinSi
FinPara
FinPara
FinFuncion
Algoritmo SubProcesos_Tema_B
Definir i,j,M,F Como Entero
Definir B,Suma Como Real
M=AleatorioM()
Dimension B[10,10]
Para i<-0 Hasta M-1 Con Paso 1 Hacer
Para j<-0 Hasta M-1 Con Paso 1 Hacer
B[i,j]=Azar(199)-99 + (Azar(199)-99 )/100
FinPara
FinPara
F=AleatorioF()
EscribaMatrix(B,M)
Suma=CalcularSuma(B,M,F)
Escribir " "
Escribir " ... F:",F," ,Suma:",Suma
FinAlgoritmo
// 6
// Suma magica
Algoritmo Matriz_magica
Definir i,j,aux,N,suma,sumas,magica Como Entero;
Definir EsMagica Como Logico
Dimension sumas[22],magica[10,10];
//N=Azar(8) +3;
N=10;
Para i=0 Hasta N-1 Con Paso 1 Hacer
Para j=0 Hasta N-1 Con Paso 1 Hacer
magica[i,j]=Azar(N*N)+1
//Escribir " Dar dato: ",i," ",j;
//Leer magica[i,j];
FinPara
FinPara
Para i=0 Hasta 2*N+2-1 Con Paso 1 Hacer
sumas[i]=0;
FinPara
Para i=0 Hasta N-1 Con Paso 1 Hacer
Para j=0 Hasta N-1 Con Paso 1 Hacer
sumas[i]=sumas[i]+magica[i,j];
FinPara
FinPara
Para i=0 Hasta N-1 Con Paso 1 Hacer
Para j=0 Hasta N-1 Con Paso 1 Hacer
sumas[j+N]=sumas[j+N]+magica[i,j];
FinPara
FinPara
Para i=0 Hasta N-1 Con Paso 1 Hacer
sumas[2*N]=sumas[2*N]+magica[i,i];
FinPara
Para i=0 Hasta N-1 Con Paso 1 Hacer
sumas[2*N+1]=sumas[2*N+1]+magica[i,N-1-i];
FinPara
EsMagica=Verdadero
aux=sumas[0];
Para i=1 Hasta 2*N+1 Con Paso 1 Hacer
// sumas[i]=aux;
Si (aux!=sumas[i]) Entonces
Escribir " ... la matriz no es magica ...";
i=2*N+3; EsMagica=Falso
FinSi
FinPara
Si EsMagica Entonces
Escribir " ... la matriz es magica y la suma es: ",aux;
FinSi
FinAlgoritmo
// Suma mágica