Tema destacado: Últimos eventos sobre seguridad/inseguridad
Autor
|
Tema: Ejercicios simples en Java (Leído 6,105 veces)
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
Hola Foro Voy a lanzar un ejercicio y esperar a quien lo resuelva y al final del plazo voy a resolverlo con una breve explicación. (Ruego por la aprovación del Moderador de este Foro)Los ejercicios no son muy dificiles, ya que es mas para ayudar y orientar a los mas novatos. DATOS Objetivo: Para los novatos, desarrollar Lógica. Utilizando el Lenguaje de Programación Java, genere la siguiente matriz: Matriz 1 0 0 0 0 1 0 0 0 1 2 0 0 1 2 3 0 1 2 3 4 1 2 3 4 5 La matriz debe generarse dependiendo el número que el usuario asigne: Si el usuario asigna 5, debe generarse una matriz de 5 por 5 como la que se ve en el primer ejemplo, en caso de ser 4, debe generar una Matriz de 4 por 4: 0 0 0 1 0 0 1 2 0 1 2 3 1 2 3 4 El codigo debe ser expuesto y debidamente comentado en el hilo dentro de las etiquetas Code. El plazo para resolver esta ejercicio es de 8 días. Luego de ese tiempo, pasaré a mostrar el ejercicio resuelto. En caso de que el ejercicio sea resuelto en menos de 2 días se proseguira a plantear un nuevo ejercicio, bajo este mismo hilo o en un nuevo post, dependiendo si la situación lo amerita. Un saludo y a Programar OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
pregunta: ¿se debe realizar solo el método que crea la matriz, o también el método main()?
|
|
|
|
|
En línea
|
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
Yo creo que el main() lo vas a usar vos mientras pruebas lo que hiciste, yo no voy a necesitarlo, puedo hacer mi clase y llamar a tu metodo, pero... te recuerdo que este ejercicio tiene como fin ayudar a los mas novatos.
Osea que es mejor si posteamos todo sin falta. Un saludo
OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
v.antrax
Desconectado
Mensajes: 7
|
E Aqui tienes el pequeño programa en codigo.. bye.. public class m_1 { public static void main(String jorge []) { int n,m_matriz[][],cont,aux; n=5; aux=0;cont=1; m_matriz[][]= new int [n][n]; for(int fil=n-1;fil >=0 ;fil--) { for(int col= aux ; col< n ; col++ ) {
m_matriz[fil][col]=cont; cont ++; } cont=1; aux++; } // mostrar matriz for(int fil=0;fil <n ;fil++) { for(int col= 0 ; col < n ; col++ ) {
System.out.print(\t m_matriz[fil][col]); } } }
}
|
|
|
|
|
En línea
|
|
|
|
v.antrax
Desconectado
Mensajes: 7
|
Yo creo que el main() lo vas a usar vos mientras pruebas lo que hiciste, yo no voy a necesitarlo, puedo hacer mi clase y llamar a tu metodo, pero... te recuerdo que este ejercicio tiene como fin ayudar a los mas novatos.
Osea que es mejor si posteamos todo sin falta. Un saludo
OHK
Mejor que lo muestre todo el programa no crees es las facil
|
|
|
|
|
En línea
|
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
E Aqui tienes el pequeño programa en codigo.. bye.. public class m_1 { public static void main(String jorge []) { int n,m_matriz[][],cont,aux; n=5; aux=0;cont=1; m_matriz[][]= new int [n][n]; for(int fil=n-1;fil >=0 ;fil--) { for(int col= aux ; col< n ; col++ ) {
m_matriz[fil][col]=cont; cont ++; } cont=1; aux++; } // mostrar matriz for(int fil=0;fil <n ;fil++) { for(int col= 0 ; col < n ; col++ ) {
System.out.print(\t m_matriz[fil][col]); } } }
}
Tu codigo me ha generado 2 Errores System.out.print(\t m_matriz[fil][col]);
debería ser asi: System.out.print("\t" + m_matriz[fil][col]);
m_matriz[][]= new int [n][n]; debería ser asi: m_matriz = new int [n][n];
Ahora bien, los resultados no son los esperados. 0 1 2 3 4 1 2 3 4 5 No es lo que había pedido. Gracias por Intentar En la brevedad posible voy a explicar que hiciste en tu codigo. Un saludo OHKAdvertencia - mientras estabas leyendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
La respuesta ha roto con el objetivo de este ejercicio ya que no muestra ningún tipo de comentario ni ayuda. De todas formas voy a tratar de interpretarlo. public class m_1 { public static void main(String jorge []) { int n,m_matriz[][],cont,aux; n=5; aux=0;cont=1; m_matriz[][]= new int [n][n]; for(int fil=n-1;fil >=0 ;fil--) { for(int col= aux ; col< n ; col++ ) { m_matriz[fil][col]=cont; cont ++; } cont=1; aux++; } // mostrar matriz for(int fil=0;fil <n ;fil++) { for(int col= 0 ; col < n ; col++ ) { System.out.print(\t m_matriz[fil][col]); } } } } Como se puede apreciar le ha dado un nombre no muy significativo, pero por ahora eso es lo de menos. public static void main(String jorge []) Aqui inicializamos en metodo principal denominado main(); El metodo main es el cerebro de cualquier aplicación en Java... Para mas información sobre este metodo visite este link. int n,m_matriz[][],cont,aux; n=5; aux=0;cont=1; m_matriz = new int [n][n]; En estas 3 lineas de codigo ha definido sus variables de tipo int (entero) en la primera linea: en la segunda linea le ha asignado un valor inicial: en la tercera linea a inicializado la matriz new int [][]. for(int fil=n-1;fil >=0 ;fil--) { for(int col= aux ; col< n ; col++ ) { m_matriz[fil][col]=cont; cont ++; } cont=1; aux++; } En la primera linea a iniciado el conteo de una variable utilizando el for, esto para recorrer por la matriz. Como pueden ver el valor inicial empieza en el numero maximo introducido y descuenta conforme a las condiciones. en la sexta linea m_matriz[fil][col]=cont; esta dando un valor numérico a la posición donde se encuentra la matriz, utilizando el valor que tiene la variable cont en ese instante. Y luego en la siguiente linea incrementa su contador. Recordemos que es una forma válida de incrementar un contador. variable++// mostrar matriz for(int fil=0;fil <n ;fil++) { for(int col= 0 ; col < n ; col++ ) { System.out.print("\t" + m_matriz[fil][col]); } } En estas lineas de codigo como lo comentado indica, se esta imprimiendo en pantalla el resultado de el recorrido de la matriz. System.out.print("\t" + m_matriz[fil][col]);Recordemos que para la concatenación necesitamos utilizar el simbolo '+' Un saludo, espero que el codigo este mas claro, a pesar de que no cumple con lo solicitado. OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Quedo debiendo el método main() /** * MatrizCuadrada.java * * @author CarlitoS.dll * @version 25-07-2008 */ public class MatrizCuadrada { private int[][] matriz; /** * Constructor sin parámetros */ public MatrizCuadrada() { this(5); } /** * Constructor con parámetros */ public MatrizCuadrada(int tamaño) { if (tamaño > 0) { llenarMatrizCuadrada(tamaño); } else { System.out.println("El tamaño mínimo de la matriz cuadrada es 1."); } } /** * Método accesador de la matriz * @return Devuelve una matriz cuadrada */ public int[][] getMatriz() { return matriz; } /** * Método de acceso privado que crea la matriz * @param Recibe un int para el tamaño de la matriz */ private void llenarMatrizCuadrada(int tamaño) { matriz = new int[tamaño][tamaño]; /* For para recorrer las filas */ for (int indiceFilas = tamaño -1; indiceFilas >= 0; indiceFilas--) { int posicion = indiceFilas + 1; /*For para recorrer las columnas */ for (int indiceColumnas = tamaño -1; indiceColumnas >= 0; indiceColumnas--) { matriz[indiceFilas][indiceColumnas] = posicion >= 0 ? posicion : 0; posicion--; } } } }
|
|
|
|
« Última modificación: 26 Julio 2008, 01:45 por carlitos.dll »
|
En línea
|
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
 Resultado: /** * MatrizCuadrada.java * * @author CarlitoS.dll * @version 25-07-2008 */ 54321 43210 32100 21000 10000  , demos 1 día mas, para ver que dicen los demas. En hora buena, aunque el resultado esta invertido  Voy a hecharle un ojo a tu codigo. Mientras aprovecha en postear el Main(); Un saludo OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
mm, no le veo mucho futuro a seguir esperando mas respuestas  Mejor lanzamos el siguiente ejercicio: Bajo las bases ya propuestas en el principio del hilo, realizar la siguiente Matriz Caracol de n X n5 x 5 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 4 x 4 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 Un saludo y suerte.
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
 será que esta muy dificil? mmm, o es que no hay muchos programadores bajo Java interesados en practicar un poco...  Bueno, lo dejo 2 días mas y luego lo resuelvo. Un saludo OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
Matriz Caracol de n X n
5 x 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
4 x 4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Metodo LLenar Matriz Caracolpublic static void llenarmatrizcaracol(int mat[][],int n,int m) { int fil,col,aux,cont,k; //Nos creamos variables de tipo entero cont=1; //Inicializamos un contador for(k=0;k<m;k++) { col=k; for(fil=k;fil<=(m-1-k);fil++) { mat[fil][col]=cont; cont++; } fil=m-1-k; for(col=k+1;col<=n-1-k;col++) { mat[fil][col]=cont; cont++; } col=n-1-k; for(fil=m-2-k;fil>=k;fil--) { mat[fil][col]=cont; cont++; } fil=k; for(col=n-2-k;col>=k+1;col--) { mat[fil][col]=cont; cont++; } } return; } Método Mostrar Matrizpublic static void mostrarmatriz(int mat[][],int n,int m) { for(int fil=0;fil<m;fil++) { System.out.println(""); for(int col=0;col<n;col++) { System.out.print("\t"+mat[fil][col]); } } return; } Método Main public static void main(String args[]) { int mat[][]; //Creamos una matriz int n,m; //Creamos variables mat=new int[1000][1000]; //Inicializamos la matriz n=5; //Inicializamos las variables m=5; llenarmatrizfila(mat,n,m); //Llamamos el metodo para llenar la matriz mostrarmatriz(mat,n,m); //Imprimimos en pantalla la matriz } JavaUn saludo OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
Supongo que con esto terminamos este hilo, ya que no veo usuarios con interes en resolver los ejercicios.  Nos vemos Un saludo OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
Newbie´s
Desconectado
Mensajes: 20
|
Jje... llegue tarde...  Fijate en el método main(), hay un leve error... no sé si lo has puesto apropósito o no... pero hay un error... Además... la salida no es la que buscas... haces la inversa a la que haces mención...  1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9 Aún asi, buen code...  Pero pienso que en el método main(), se podrían hacer un poco menos de lineas de código... public static void main(String[] args) { int man[][] =new int[1000][1000]; int n=5, m=5; .... } Saludos
|
|
|
|
|
En línea
|
|
|
|
ohk
Desconectado
Mensajes: 1.577
Some times I think i'm crazy, I'm crazy o so crazy
|
y si, hoy en día se hace de todo para reducir las líneas de código, usar la recursividad ya es muy común para resolver esta tipo de ejercicios.
mirad:
1 1 1 1 1 1 2 2 2 2 1 2 4 4 4 1 2 4 8 8 1 2 4 8 16
Se debe resolver de forma recursiva. Los parámetros de entrada, pueden ser, según su análisis.
int fila, int col, int contador, int mat[][]
Creo que no esta muy difícil, y este tipo de ejercicios ayuda mucho a desarrollar lógica.
Un saludo
OHK
|
|
|
|
|
En línea
|
Y es que a veces pienso, que si no estubiera loco, no podría salir adelante.
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ejercicios Recursivos en Java y sus Soluciones
« 1 2 3 »
Ejercicios
|
ohk
|
38
|
135,551
|
4 Diciembre 2011, 23:13
por ato2112
|
|
|
ejercicios + soluciones en java
« 1 2 »
Java
|
bjpenn
|
25
|
5,608
|
14 Septiembre 2011, 19:01
por bjpenn
|
|
|
Ejercicios en JAVA
Ejercicios
|
madpitbull_99
|
8
|
5,031
|
13 Marzo 2012, 02:27
por Audioslave™
|
|
|
Ejercicios prácticos Java
Java
|
Superplay
|
13
|
1,660
|
8 Noviembre 2011, 15:35
por Superplay
|
|
|
ejercicios con metodos java
Java
|
mq1024
|
9
|
1,005
|
20 Marzo 2012, 15:38
por Lerinor
|
|