Suma de filas y columnas en una matriz Pseint

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

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.

Curso iniciación pseudocodigo con Pseint

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539