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://www.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.

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

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.

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

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:

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

Así lo adaptamos:

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

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 *