Hola a todos, hoy os voy explicar como podemos sumar las filas y columnas en una matriz en PseInt.
A veces, necesitamos solo recorrer una fila o columna de una matriz en PseInt para nuestro algoritmo.
Os dejo un manual donde explico como podemos rellenar una matriz de números aleatorios en PseInt.
https://discoduroderoer.es/rellenar-una-matriz-de-numeros-aleatorios-en-pseint
De primeras, vamos a crear una matriz de números de aleatorios y mostrarla por pantalla.
[code] Proceso testSumaFilaColumna Dimension matriz(5,5);
Definir matriz, numFilas, numColumnas, minimo, maximo, suma, i, j Como entero;
numFilas <- 5;
numColumnas <- 5;
minimo <- 1;
maximo <- 9;
suma <- 0;
// relleno la matriz con numeros aleatorios
rellenarMatrizAleatorios(matriz, numFilas, numColumnas, minimo, maximo);
// muestro la matriz
Para i<-0 Hasta numFilas – 1 Con Paso 1 Hacer
Para j<-0 Hasta numColumnas – 1 Con Paso 1 Hacer
Escribir matriz(i,j) ,» » Sin Saltar;
FinPara
Escribir «»;
FinPara
FinProceso
//Genera un numero aleatorio entre el minimo y máximo incluidos
SubProceso numeroAzar <- numeroAleatorioEntre(minimo, maximo)
definir numeroAzar como numero;
numeroAzar <- 0;
Repetir
numeroAzar <- AZAR(maximo+1); Hasta Que numeroAzar >= minimo Y numeroAzar<=maximo
FinSubProceso
//Rellena una matriz de numeros aleatorios entre un mínimo y un máximo, números mínimo y máximo incluidos.
SubProceso rellenarMatrizAleatorios(matriz, numFilas, numColumnas, minimo, maximo)
definir i,j como numero;
Para i<-0 Hasta numFilas -1 Con Paso 1 Hacer
Para j<-0 Hasta numColumnas -1 Con Paso 1 Hacer
matriz(i,j) <- numeroAleatorioEntre(minimo, maximo);
FinPara
FinPara
FinSubProceso
[/code]
Este es el resultado:

Para sumar las filas de una matriz, podemos recorrer con un Para manteniendo siempre igual el primer valor de la matriz y el segundo siendo variable.
[code] Proceso testSumaFilaColumna Dimension matriz(5,5);
Definir matriz, numFilas, numColumnas, minimo, maximo, suma, i, j Como entero;
numFilas <- 5;
numColumnas <- 5;
minimo <- 1;
maximo <- 9;
suma <- 0;
// relleno la matriz con numeros aleatorios
rellenarMatrizAleatorios(matriz, numFilas, numColumnas, minimo, maximo);
// muestro la matriz
Para i<-0 Hasta numFilas – 1 Con Paso 1 Hacer
Para j<-0 Hasta numColumnas – 1 Con Paso 1 Hacer
Escribir matriz(i,j) ,» » Sin Saltar;
FinPara
Escribir «»;
FinPara
// Sumo /la primera fila
Para j <- 0 Hasta numColumnas – 1 Con Paso 1 Hacer
suma <- suma + matriz(0, j); FinPara Escribir «Suma de la fila 0 => «, suma;
// Sumo la cuarta fila
suma <- 0;
Para j <- 0 Hasta numColumnas – 1 Con Paso 1 Hacer
suma <- suma + matriz(3, j); FinPara Escribir «Suma de la fila 3 => «, suma;
FinProceso
//Genera un numero aleatorio entre el minimo y máximo incluidos
SubProceso numeroAzar <- numeroAleatorioEntre(minimo, maximo)
definir numeroAzar como numero;
numeroAzar <- 0;
Repetir
numeroAzar <- AZAR(maximo+1); Hasta Que numeroAzar >= minimo Y numeroAzar<=maximo
FinSubProceso
//Rellena una matriz de numeros aleatorios entre un mínimo y un máximo, números mínimo y máximo incluidos.
SubProceso rellenarMatrizAleatorios(matriz, numFilas, numColumnas, minimo, maximo)
definir i,j como numero;
Para i<-0 Hasta numFilas -1 Con Paso 1 Hacer
Para j<-0 Hasta numColumnas -1 Con Paso 1 Hacer
matriz(i,j) <- numeroAleatorioEntre(minimo, maximo);
FinPara
FinPara
FinSubProceso
[/code]
Este es el resultado:

Para sumar las columnas de una matriz, podemos recorrer con un Para manteniendo siempre igual el segundo valor de la matriz y el primero siendo variable.
También lo podemos hacer en subprocesos para reutilizar nuestro código:
[code] // Sumo los valores de una fila de una matrizSubProceso suma <- sumaFilas(matriz, numColumnas, fila)
definir j, suma como numero;
Para j <- 0 Hasta numColumnas – 1 Con Paso 1 Hacer
suma <- suma + matriz(fila, j);
FinPara
FinSubProceso
// Sumo los valores de una columna de una matriz
SubProceso suma <- sumaColumnas(matriz, numFilas, columna)
definir i, suma como numero;
Para i <- 0 Hasta numFilas – 1 Con Paso 1 Hacer
suma <- suma + matriz(i, columna);
FinPara
FinSubProceso
[/code]
Así lo adaptamos:
[code] Proceso testSumaFilaColumna Dimension matriz(5,5);
Definir matriz, numFilas, numColumnas, minimo, maximo, suma, i, j Como entero;
numFilas <- 5;
numColumnas <- 5;
minimo <- 1;
maximo <- 9;
suma <- 0;
// relleno la matriz con numeros aleatorios
rellenarMatrizAleatorios(matriz, numFilas, numColumnas, minimo, maximo);
// muestro la matriz
Para i<-0 Hasta numFilas – 1 Con Paso 1 Hacer
Para j<-0 Hasta numColumnas – 1 Con Paso 1 Hacer
Escribir matriz(i,j) ,» » Sin Saltar;
FinPara
Escribir «»;
FinPara
// Sumo /la primera fila
Para j <- 0 Hasta numColumnas – 1 Con Paso 1 Hacer
suma <- suma + matriz(0, j); FinPara Escribir «Suma de la fila 0 => «, suma;
// Sumo la cuarta fila
suma <- 0;
Para j <- 0 Hasta numColumnas – 1 Con Paso 1 Hacer
suma <- suma + matriz(3, j); FinPara Escribir «Suma de la fila 3 => «, suma;
// Sumo la tercera columna
suma <- 0;
Para i <- 0 Hasta numFilas – 1 Con Paso 1 Hacer
suma <- suma + matriz(i, 2); FinPara Escribir «Suma de la columna 2 => «, suma;
// Sumo la ultima columna
suma <- 0;
Para i <- 0 Hasta numFilas – 1 Con Paso 1 Hacer
suma <- suma + matriz(i, 4); FinPara Escribir «Suma de la columna 4 => «, suma;
FinProceso
//Genera un numero aleatorio entre el minimo y máximo incluidos
SubProceso numeroAzar <- numeroAleatorioEntre(minimo, maximo)
definir numeroAzar como numero;
numeroAzar <- 0;
Repetir
numeroAzar <- AZAR(maximo+1); Hasta Que numeroAzar >= minimo Y numeroAzar<=maximo
FinSubProceso
//Rellena una matriz de numeros aleatorios entre un mínimo y un máximo, números mínimo y máximo incluidos.
SubProceso rellenarMatrizAleatorios(matriz, numFilas, numColumnas, minimo, maximo)
definir i,j como numero;
Para i<-0 Hasta numFilas -1 Con Paso 1 Hacer
Para j<-0 Hasta numColumnas -1 Con Paso 1 Hacer
matriz(i,j) <- numeroAleatorioEntre(minimo, maximo);
FinPara
FinPara
FinSubProceso
// Sumo los valores de una fila de una matriz
SubProceso suma <- sumaFilas(matriz, numColumnas, fila)
definir j, suma como numero;
Para j <- 0 Hasta numColumnas – 1 Con Paso 1 Hacer
suma <- suma + matriz(fila, j);
FinPara
FinSubProceso
// Sumo los valores de una columna de una matriz
SubProceso suma <- sumaColumnas(matriz, numFilas, columna)
definir i, suma como numero;
Para i <- 0 Hasta numFilas – 1 Con Paso 1 Hacer
suma <- suma + matriz(i, columna);
FinPara
FinSubProceso
[/code]
Recordar que tenemos más subprocesos útiles en nuestra biblioteca en github.
Y no te olvides que tenemos un curso en udemy de PseInt.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta