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 2 3 4 [5] 6 7 8 9 10 ... 93
81
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

82
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

83
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

84
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

85
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

86
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

87
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

88
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

89
Buenas venecox, 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 un título de una sola palabra porque no ayuda en nada a localizar o resolver el tema). Mira también cómo pegar código en los foros para que quede con formato de código.

El código que has pegado supongo que está dentro de un código más amplio y habría que ver otras cuestiones (como el JavaScript que pueda tener asociado) para valorarlo. A simple vista se ven cosas un tanto extrañas como que el form no tenga un action definido y la mezcla de mensajes de validación con campos de petición de datos. Tampoco parece código HTML bien construido, por ejemplo los label englobando otras varias etiquetas y otras cuestiones como el uso de br.

Si lo que pretendes es el envío de un correo electrónico cuando se pulse en un botón enviar necesitas un lenguaje del lado del servidor como php.

Puedes ver cursos de programación web (HTML, CSS, JavaScript, PHP) en https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86

Salu2

90
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

91
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

92
Buenas, puedes mirarte el curso de creación y administración web Joomla desde cero disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=38&Itemid=152

Salu2

93
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

94
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

95
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

96
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

97
Sí, si tuviera un programa con miles de líneas de código mejor dejarlo como esté. Lo mejor es tener los mejores diseños desde el principio. Salu2

98
Buenas robbindick, gracias por tus aportaciones a los foros. Te comento un par de cosas para que las tengas en cuenta: a la hora de publicar código, hazlo como se explica en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 para facilitar que lo puedan leer y consultar otras personas. Igualmente sigue las indicaciones que se dan en ese hilo para poner título a los temas, y para demás cuestiones. Todo ello contribuye a que sean más fáciles de leer y encontrar los hilos de cada temática.

Si publicas soluciones a los ejercicios, es conveniente que publiques en un solo hilo todas las soluciones de una entrega, como por ejemplo se hace en https://aprenderaprogramar.com/foros/index.php?topic=3945.0 en lugar de soluciones a sólo alguno de los ejercicios que se propongan en la entrega.

Ten cuidado al pegar, en el código que has pegado se ven cosas extrañas, por ejemplo echo <<< eot ; no sé si lo has hecho queriendo o sin querer, pero al plantear soluciones a los ejercicios lo adecuado es hacerlo siguiendo lo explicado en el curso. En este caso no sería correcta como solución una solución que use eot porque eot no se ha explicado dentro del curso.

Salu2

99
Buenas, para quien revise este ejercicio el código funciona bien, pero no hace lo que pedía el ejercicio, y usa cosas que no están en el programa del curso como System.err.println, por tanto no debe tomarse como solución de referencia.

Salu2

100
Buenas, para quien revise este ejercicio dejo algún comentario:

- En el constructor es mejor inicializar a cadenas vacías "", 0 ó false. De este modo se sabe que el objeto aún no tiene atributos establecidos.

- En los métodos get y set no es necesario usar System.out.println excepto si el ejercicio nos lo pide expresamente

Salu2

Páginas: 1 2 3 4 [5] 6 7 8 9 10 ... 93
Esto es un laboratorio de ideas...
Aprender a programar

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".