Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Ogramar

Páginas: 1 ... 8 9 10 11 12 [13] 14 15 16 17 18 ... 100
242
Buenas, para quien revise este ejercicio, funciona correctamente, si bien se utilizan herramientas de programación que no se han explicado en el curso (como try-catch ó String.format), por lo que si se quiere ver una respuesta que se ciñe a los contenidos del curso puede consultarse https://aprenderaprogramar.com/foros/index.php?topic=2353.0

Salu2

243
Buenas, para quien revise este ejercicio, funciona correctamente. Es también un ejemplo de uso de JOptionPane para pedir datos a través de una ventana (aunque esto no se trabaja en el curso, donde básicamente se utiliza la consola, por tanto no es requisito el uso de ventanas).

Salu2

244
Buenas, ejercicio correcto, cuyo único objetivo es familiarizarse con el uso de javadoc. Salu2

245
Buenas, para quien revise este hilo, el código funciona correctamente. Como único detalle a comentar, en el código se usa un for extendido Java y dentro de este, un iterator. El ejercicio indicaba "e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2."

Puede verse una solución donde sólo se usan iteradores en https://aprenderaprogramar.com/foros/index.php?topic=2384.0

Al compilar aparece el mensaje "Warnings from last compilation ... uses unchecked or unsafe operations. Recompile with -Xlint.unchecked for details pero en este caso no veo que tenga trascendencia, el manejo de tipos es correcto.

Salu2

246
Buenas, para quien revise este ejercicio, funciona correctamente y realiza lo que se pedía. Podrían comentarse algunos detalles sobre eficiencia en el uso de recursos (espacio de memoria) y mantenibilidad del código, aunque no es el objetivo del curso entrar en estos detalles. No obstante, para quien tenga curiosidad, dejo una pregunta en el aire: si comparamos este código con el propuesto en https://aprenderaprogramar.com/foros/index.php?topic=4198.0 ¿Qué ventajas tendría uno y otro? ¿Qué ocurriría si en vez de veinte o treinta datos trabajáramos con miles de datos?

Salu2

247
Buenas, para quien revise este ejercicio y quiera ver una respuesta correcta y simple puede consultar https://aprenderaprogramar.com/foros/index.php?topic=2213.0

Algunos comentarios sobre lo indicado en este hilo. Aquí se produce una curiosidad: la interface Iterable define 3 métodos que son iterator(), spliterator() y forEach() por lo cual parece lógico pensar en que para implementar la interface, haya que definir estos tres métodos. Sin embargo, si queremos implementar la interface únicamente hay que definir el método iterator(), porque los otros dos disponen de una implementación por defecto, detalle que ocurre con algunas interfaces Java. No es recomendable detenerse en esta entrega del curso en estas cuestiones, porque Java tiene muchos detalles y en el curso no se pretende entrar en los detalles, sino en los conceptos más importantes. De cualquier forma, para quien quiera leer un poco sobre el tema, copio algo de información (en inglés):

Citar
You don't have to implement spliterator() and forEach() methods. Those methods were introduced in Java 8 and they have a default implementation.

As to what they do :

spliterator() creates a Spliterator over the elements described by this Iterable. A Spliterator is used for traversing and partitioning elements of a source (which can be, for example, a Collection). It is used in Java 8 to create parallel Streams of objects, which would allow you to perform operations on the items of your Iterable in parallel.

forEach(Consumer action) performs an action (by calling the accept method of the Consumer which is passed to it) on all the elements of the Iterable.

Its default implementation behaves like :

 for (T t : this)
     action.accept(t);

You just have to implement the iterator() method, which returns an Iterator.

Of course you can read all of this in the JavaDoc of Iterable.

Salu2

248
Buenas, para quien revise este hilo, se trata del código correspondiente a la propuesta (no está contemplado formalmente como ejercicio) que se hace al final de la entrega CU00676B del curso, donde se indica "Escribe un fragmento de código utilizando esta signatura del método fill y comprueba sus resultados."

Una curiosidad que podemos comprobar en este y en otros casos, es que definido int fromIndex=5, toIndex=8; el resultado es que el array de 10 elementos que inicialmente se rellenó con fill siendo todos sus elementos 33, al rellenarse con 34 entre los índices indicados queda como 33,33,33,33,33,34,34,34,33,33

La curiosidad está en que los elementos que se han sustituido son el 5, 6 y 7 (empezamos a contar desde cero). El 8 está excluído. ¿Por qué? Si consultamos la signatura del método fill utilizado en el api Java encontramos esto:

Citar
public static void fill(int[] a,
                        int fromIndex,
                        int toIndex,
                        int val)

Assigns the specified int value to each element of the specified range of the specified array of ints. The range to be filled extends from index fromIndex, inclusive, to index toIndex, exclusive. (If fromIndex==toIndex, the range to be filled is empty.)

Donde comprobamos que se define que el índice fromIndex está incluído, mientras que el índice toIndex está excluído. ¿Por qué? Porque así lo decidieron los creadores del Api Java.

Salu2

249
Buenas, para quien revise este ejercicio, la solución propuesta no sigue exactamente lo que se pedía en el curso. Puede consultarse una solución que cumple con lo indicado en el curso en https://aprenderaprogramar.com/foros/index.php?topic=2261.0

Salu2

250
Buenas, para quien revise este ejercicio, la idea aquí era tan sólo ver la forma de organizar proyectos con packages java, y eso está conseguido. El código de las clases aquí no tiene importancia.

Salu2

251
Buenas, para quien revise este ejercicio, hay varias cosas incorrectas en cuanto a que no se adapta a las propuestas del curso y/o a los estándares habituales adoptados por convención en la programación Java.

En la clase ListaCantantesFamososCU00666B hay un atributo String nombreCantante; que no tiene mucho sentido, de hecho ni siquiera es utilizado (por tanto, sobra).

Otro incumplimiento de las propuestas del curso es no declarar los atributos de clase con el modificador private. Debería usarse private ArrayList <String> listaCantantes; en lugar de ArrayList <String> listaCantantes;

Y derivado de lo anterior, deberían usarse métodos get en lugar del acceso directo a atributos (como se hace por ejemplo en la clase test donde se invoca listado.listaCantantes

Otra cosa de diseño poco acertado es en la clase test usar el bucle for-each con el condicional if (k==0). Esto es una complicación innecesaria para el código.

Puede verse una solución correcta de este ejercicio en https://aprenderaprogramar.com/foros/index.php?topic=2262.0

Salu2

252
Buenas, para quien revise este ejercicio, en general todo bien. Comento un par de cosas:

En la clase NumeroAleatorio hay una línea comentada

numeroAleatorio=numAleato.nextInt(100)+1 ;// ¿Para que sea 1 el numero menor y 99+1 = 100 el mayor? ¿?

Efectivamente, si consultamos el api Java podremos ver:

nextInt(int bound)
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence.

Por tanto nextInt(100) genera un número entero aleatorio entre 0 (incluido) y 100 (excluído), por tanto entre 0 y 99. Al sumarle 1, lo que tenemos es que se obtendrá un número aleatorio entre 1 y 100.

Otro detalle: si se quiere evitar el parseInt tmpEntrada=Integer.parseInt(entrada.getEntrada()); que aparece en la clase test, puede usarse
entradaTeclado = entradaEscaner.nextInt (); en lugar de entradaTeclado = entradaEscaner.nextLine ();

Salu2

253
Buenas, para publicar en los foros deben seguirse unas normas básicas que están explicadas en https://aprenderaprogramar.com/foros/index.php?topic=1460.0
Te recomiendo que vuelvas a publicar el mensaje siguiendo esas indicaciones.
Salu2

254
Buenas Mafer, para poner título a los temas mírate el hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0

Echale un vistazo a lo que se comenta en https://aprenderaprogramar.com/foros/index.php?topic=1814.0 sobre el header que estás intentando usar, creo que te puede ayudar algo.

También si escribes la palabra redirección en el buscador del foro puedes encontrar otros hilos sobre redireccionamiento.

No puedes introducir un header si ya has enviado algún contenido. En tu caso estás enviando contenido antes de usar el header.

A priori lo que se me ocurre es que desde la página de login, tu botón de envío de datos debe llegar a la página de aterrizaje y recibir los datos del login. En esa página harías el condicional para decidir la redirección sin antes generar ninguna salida.

Salu2

255
Buenas Luis, mira el hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se dan unas indicaciones básicas sobre cómo poner título a los hilos en los foros, cómo pegar código, etc.

En general, si no se trata de un código de grandísima extensión, es preferible pegarlo tal y como se indica en el hilo que te he indicado, en lugar de subirlo como archivo adjunto. El motivo es que facilita el que se lea más rápido y se pueda copiar y pegar para hacer pruebas rápidas.

¿Estás utilizando C ó C++? Veo que el archivo tiene extensión cpp aunque en la pregunta indicas que se trata de C. Si estás iniciándote en C te será útil este curso de programación básica en C: https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

Por contra si estás en un nivel avanzado ese curso te resultará demasiado básico.

Una cuestión que creo que falta es que describas qué es lo que quieres hacer. Pon por ejemplo varias operaciones para ver cómo debería responder el programa, es decir, qué debería ver el usuario, cómo debería responder el programa cuando se introduzcan datos, etc. Por ejemplo no es lo mismo la división entera que la división decimal. Si quieres resultados con decimales no puedes almacenarlos en un tipo int. Todo este tipo de cuestiones hay que tenerlas claras antes de programar una solución.

Salu2

256
Buenas janegg, para poner título a los temas mírate el hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0 e intenta poner los títulos como se indica ahí (evitar por ejemplo ayuda por favor porque eso no ayuda en nada a localizar o resolver el tema).

No estoy seguro de que el código esté bien diseñado. Por un lado añades elementos sobre un JFrame que es jf y por otro lado tienes una sentencia add(panel) que está añadiendo el panel sobre el objeto this que no es lo mismo que jf, con lo cual al mostrarse this se te muestra vacío ya que no has añadido los diferenes elementos a this, sino a jf

En lugar de add(panel) deberás indicar que el panel se añade al JFrame así:

 jf.add(panel);
 jf.setSize( 500, 500 );
 jf.setVisible(true);

A mí al menos con este cambio se me muestran los JLabel, JTextField, etc.

Salu2

257
Buenas lorck, para pegar código en los foros y para poner títulos adecuados y otras cuestiones mira el hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0

En el curso https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 hay ejemplos de creación de calculadoras. Puedes ver la entrega Función eval JavaScript. getElementsByClassname. Ejemplo código JavaScript calculadora simple (CU01133E)

Este curso es recomendable para adquirir los fundamentos de JavaScript antes de empezar a usar jQuery

Salu2

258
Buenas, "por defecto" se refiere a que cualquier objeto que se cree tendrá siempre esos atributos, y para modificarlos habrá que hacerlo usando un procedimiento específico establecido para ello. En este ejercicio, si en el constructor de la clase defines nombre= "Paquito"; eso signfica que todas las instancias de la clase que se creen tendrán como atributo nombre "Paquito" y eso parece poco lógico. Es más lógico dejarlo como cadena vacía (que se puede interpretar como no establecido), o bien si quieres asignarle un valor podría ser "Desconocido", "No establecido", ó similar. Nada te impide usar "Paquito", el código compila, pero en general puede considerarse una mala práctica. Una solución correcta para este ejercicio podría ser la que se muestra en https://aprenderaprogramar.com/foros/index.php?topic=1300.0 Salu2

259
Buenas, aunque el código funcione, no es una respuesta adecuada dentro del curso propuesto. El motivo es que se usan conceptos, estructuras o instrucciones no explicadas dentro del curso (por ejemplo print_r, ó por ejemplo foreach en esta entrega, cuando en el contexto del curso aún no ha sido explicado en la entrega CU00825B). Los cursos planteados en la web están pensados para irlos siguiendo paso a paso, utilizando progresivamente las herramientas del lenguaje a medida que van siendo explicadas en el curso, y sin usar otras soluciones no representativas del contenido del curso, aunque pueda resolverse igualmente el problema con esa otra solución planteada. Una solución adecuada ajustada a los contenidos del curso sería por ejemplo la planteada en https://aprenderaprogramar.com/foros/index.php?topic=4123.0

Salu2

260
Buenas, para pegar código y otras cuestiones échale un ojo al hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0

Para el problema que comentas mira este hilo a ver si coincide lo que se habla ahí como posible solución: https://aprenderaprogramar.com/foros/index.php?topic=518.0

Salu2

Páginas: 1 ... 8 9 10 11 12 [13] 14 15 16 17 18 ... 100

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".