Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nombre:
Curso:
Fecha:
Matriz 1
Matriz por conseguir:
Desarrollo:
Primero declararemos las variables a utilizar para poder ingresar una matriz y posteriormente
limitar el ingreso a números impares y mayores que 3 de la siguiente manera:
Entra a un “do” el cual lee la dimensión ingresada por usuario, si cumple la condición declara la
matriz con dimensiones iguales a la ingresada por usuario tanto para filas como para columnas
y cambia en valor de conf a true de esta manera permitiéndonos salir del do while.
De la condición no cumplirse saldrá el enunciado de ("El número ingresado no cumple con los
requisitos.") y volverá a pedir el valor hasta que se ingrese correctamente.
Empezaremos declarando dos ciclos for anidados para así poder más adelante pasar a llenar la
matriz con el patrón dado.
Por defecto los elementos de la matriz son 0 por lo cual si declaramos otros dos ciclos for
anidados para imprimir la matriz nos dará lo siguiente.
Condicional 1
Declaramos un contador el cual nos ayudara a poder ir identificando el recorrido por la Matriz
y poder llegar al patrón deseado, junto con un condicional el cual agregamos y probamos que
nos llena de una secuencia numérica la diagonal principal.
Condicional 2
Condicional 3
Siguiendo la misma lógica de agregar contadores de este caso, empezando desde la posición
(0;2) y luego incrementar el valor en uno para recorrer junto a la condicional por las posiciones
deseadas, continuando así la serie de números establecida gracias a una nueva variable que
continuara desde el número que se había quedado en la diagonal anterior.
Seguimos la misma lógica y metodología que las anteriores condicionales, a diferencia que la
posición donde empezamos ahora es la (0;3) y en la secuencia numérica desde 13 a 14.
Condicional 5
Culminamos el patrón deseado con una última condicional, contadores, los cuales nos generara
el número 15 en la posición faltante (0;4) y así logrando el patrón de números plateado y
deseado.
La siguiente sección del código nos permite imprimir la matriz de para poder visualizar el orden
que se encuentra actualmente.
Codigo:
/*
*/
package recu2;
import java.util.Scanner;
/**
* @author andys
*/
/**
*/
int[][] ma = null;
int n;
do {
if (n % 2 != 0 && n > 3) {
ma = new int[n][n];
conf = true;
} else {
} while (!conf);
int c = 1;
int c2 = 1;
int c3 = 2;
int c4 = 3;
int c5 = 4;
int n2 = n;
int n3 = n2+(n-1);
int n4 = n3+(n-2);
int n5 = n4+(n-3);
if (j == i) {
ma[i][j] = c;
c++;
if (j == c2) {
ma[i][j] = n2+1;
n2++;
if(j==c3){
ma[i][j] = n3+1;
n3++;
}
if(j==c4){
ma[i][j] = n4+1;
n4++;
if(j==c5){
ma[i][j] = n5+1;
n5++;
c2++;
c3++;
c4++;
c5++;
System.out.print(ma[i][j] + "\t");
System.out.println();
Ejecusion:
Matriz 2
Matriz por conseguir:
Desarrollo:
Igual que la anterior matriz importamos la librería java.util.Scanner; para de esta manera
poder posteriormente crear un objeto de tipo Scanner llamado “S” y así nos permita leer la
entrada de datos de un usuario de la siguiente manera:
Declararemos las variables a utilizar para poder ingresar una matriz y posteriormente limitar el
ingreso a números impares y mayores que 3 de la siguiente manera:
Entra a un “do” el cual lee la dimensión ingresada por usuario, si cumple la condición declara la
matriz con dimensiones iguales a la ingresada por usuario tanto para filas como para columnas
y cambia en valor de conf a true de esta manera permitiéndonos salir del do while.
De la condición no cumplirse saldrá el enunciado de ("El número ingresado no cumple con los
requisitos.") y volverá a pedir el valor hasta que se ingrese correctamente.
Agrego dos for anidados para poder llenar en un momento con condicionales y así lograr llegar
al patrón mostrado anteriormente y al cual queremos llegar por defecto las matrices muestran
que están llenas de ceros, así que al imprimir esta matriz nos dará lo siguiente.
Condicional 1
Con la línea de código agregada se imprimirán normalmente los números por filas, pero con
esa misma línea de código, un contador el cual irá agregando números, por cada posición
avanzada se sumara el valor de uno a ese contador y mostrara el orden de impresión logrando
así la primera fila del patrón deseado.
Condicional 2
Condicional 3:
Agregando otro condicional, el cual solo ingrese y empiece a colocar los números, si if (i == n -
1) la posición en la que se encuentra es en la fila n-1 de ser así empezará agregar los números
desde la posición (4;0) realizando una cuenta atrás quedando la serie números igual que el
patrón deseado.
En esta condicional vamos a establecer que entrara a la condición si se encuentra en j==0, pero
siempre y cuando en la posición i sea mayor a 0 y menor a n-2 para que no se arruine el conteo
que se va llevando de las posiciones de esta manera if (j == 0 && i > 0 && i <= n - 2).
Con un nuevo contador que continúe desde el valor de la anterior posición, pero igual que la
anterior ocasión, el conteo se realizara hacia atrás, puesto que el recorrido de la matriz lo
requiere.
Ejecución:
Condicional 5:
De igual manera se realizará una condicional desde un punto de partida y dos bloqueos para
que no sobre pase el conteo, este mismo continuará normalmente con una variable nueva que
continúe el conteo desde donde se quedó aumentado el valor en uno a diferencia de las otras
posiciones esta vez solo recorrerá 2.
Condicional 7:
Resultado de la ejecución:
Condicional 8:
Para esta condicional igualmente se declara un inicio y un límite de hasta donde llegara para
que no sobre pase el conteo y culmine el patrón de manera correcta if (i == n - 3 && j <= n - 3
&& j >= 1) acompañado de sí contador respectivo el cual continuara desde donde se quedó
anteriormente y el conteo se realizara normalmente aumentando su valor en uno.
Ejecución:
Condicional (culminación):
Para culminar con el patrón completo deseado se implementara la primera línea borrada
anteriormente mencionada para evitar el confundir el patrón impreso y de esa manera poder
imprimir el patrón completo y tal y como se presenta en la imagen del inicio.
Ejecución:
Impresión de la matriz:
Codigo:
/*
*/
package recu;
import java.util.Scanner;
/**
* @author andys
*/
/**
int[][] ma = null;
int n;
do {
n = S.nextInt();
if (n % 2 != 0 && n > 3) {
ma = new int[n][n];
conf = true;
} else {
} while (!conf);
int c = 1;
int n2 = n;
int n3 = n + n + n - 2;
int n4 = n3 + (n - 2);
int n5 = n4 + 1;
int n6 = n5 + (n - 2);
int n7 = n6 + (n - 3) + (n - 4);
int n8 = n7 + 1;
ma[i][j] = c++;
if (j == n - 1) {
ma[i][j] = n2++;
}
if (i == n - 1) {
ma[i][j] = n3--;
ma[i][j] = n4--;
ma[i][j] = n5++;
ma[i][j] = n6++;
ma[i][j] = n7--;
ma[i][j] = n8++;
System.out.print(ma[i][j] + "\t");
System.out.println();
}
Ejecución: