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.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta