Problema:
Crear una matriz de n x n con la secuencia 1,2,3,4,5… ordenada de la siguiente forma.
Solución:
Podemos observar que, al momento de colocar un elemento de la secuencia en la matriz, lo que se va modificando inicialmente es el número del subíndice que indica la posición de cada columna.
Luego, cuando llegamos a la ultima columna, esta es reiniciada y el subíndice vuelve a valer 1, mientras que el subíndice de la fila incrementa y ahora nuestra fila 1 es la fila 2.
Hora que estamos en la siguiente fila, el subíndice que indica la posición de la columna incrementa nuevamente hasta llegar a la ultima columna, posteriormente el subíndice que nos dice en que fila estamos incrementa nuevamente y así hasta llegar a la ultima fila y columna.
Y ahora podemos expresar esto en pseudocódigo (java y c++), donde la única diferencia es que la fila y columna empiezan en ‘0’ y no en ‘1’.
Variables del pseudocódigo:
- Matriz: Nombre de la matriz que creamos.
- fila: Cantidad de filas que tendrá la matriz al ser creada.
- columna: Cantidad de columnas que tendrá la matriz al ser creada.
- serie: Variable que incrementa de 1 en 1 para generar la secuencia.
- filita: Es el subíndice que indica, en que fila de la matriz nos encontramos.
- columnita: Es el subíndice que indica, en que columna de la matriz nos encontramos.
Pseudocódigo:
filita empieza en 0 columnita empieza en 0; serie empieza en 1 mientras filita < fila hacer mientras columnita < columna hacer Matriz[filita][columnita] = serie serie incrementa columna incrementa fin de mientras fila incrementa columnita = 0 fin de mientras
Este pseudocódigo lo llevamos al lenguaje de java y c++, donde solo aumentamos una variable que es la siguiente:
- contenido: Es la variable en la que vamos concatenando la matriz.
Nota: El resultado de este código es visto en la terminal (consola), si desean verlo en formulario deberán aumentar lineas de códigos ustedes.
Código en java
import java.util.Scanner; import java.util.*; public class Matriz_nxn_serie1234{ static String Matriz(int fila, int columna){ //Creamos las matriz int Matriz[][] = new int[fila][columna]; String contenido = ""; //concatenar la matriz para mostrar en horizontal int serie = 1; int filita = 0; int columnita = 0; while(filita < fila){ while(columnita < columna){ Matriz[filita][columnita] = serie; contenido = contenido + String.valueOf(Matriz[filita][columnita] + " "); serie++; columnita++; } contenido = contenido + "\n"; filita++; columnita = 0; } return contenido; } public static void main(String[] args){ Scanner teclado = new Scanner(System.in); System.out.print( "Introduzca cantidad de fila: " ); int fila = teclado.nextInt(); System.out.print( "Introduzca cantidad de columna: " ); int columna = teclado.nextInt(); //Insertar los valores a los parametros y mostrar resultado System.out.print(Matriz(fila,columna)); } }
Código en c++
#include <iostream> #include<string> using namespace std; int main(){ int fila,columna; cout<<"por favor ingrese la cantida de fila: "; cin>>fila; cout<<"por favor ingrese la cantida de columna: "; cin>>columna; //Creamos las matriz int Matriz[fila][columna]; string contenido = "";//concatenar la matriz para mostrar en horizontal int serie = 1; int filita = 0; int columnita = 0; while(filita < fila){ while(columnita < columna){ Matriz[filita][columnita] = serie; contenido = contenido + to_string(Matriz[filita][columnita]) + " "; serie++; columnita++; } contenido = contenido + "\n"; filita++; columnita = 0; } //Mostramos la matriz completa y concatenada cout << contenido << endl; return 0; }
Si encuentras algún error o algún otro detalle que se me hubiera escapado🤯, por favor déjalo en los comentarios, para que pueda corregirlo.