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 ... 91
1
Buenas, para quien revise este ejercicio, está correctamente resuelto. Salu2

2
Buenas, para quien revise este ejercicio, respuestas correctas conforme a lo que se pedía.

Salu2

3
Buenas, para quien revise esta entrega:

- Ejercicio 1, lo he revisado y lo veo perfecto: realiza lo pedido y funciona correctamente.

- Ejercicio 2: al compilar me aparece un mensaje "Warnings from last compilation: ListaApuestaSorteo.java uses unchecked or unsafe operations. Recompile with -Xlintunchecked for details

En este ejercicio hay algunos nombres de métodos o clases incorrectos o poco coherentes. Por ejemplo en la clase ListaApuestaSorteo en lugar de usar el nombre de método getOrdenarLista me parecería más correcto getListaOrdenada. En la misma clase setNumero(int numero) parece un nombre poco afortunado, ya que lo que hace el método es añadir (add) un número a la lista. Parece poco coherente que un método que realiza un add sea nombrado como set. Hubiera sido más lógico que el método se llamara addNumero. Estos detalles pueden no influir en el resultado obtenido del programa, pero si alguien evaluara el código éstas cosas serían evaluadas negativamente.

Salu2

4
Buenas, para quien revise este ejercicio, lo he revisado y lo veo perfecto: realiza lo pedido y funciona correctamente. Salu2

5
Buenas, para quien revise este ejercicio, después de probar el programa, a mí al menos no me funciona correctamente.

Por un lado, no veo cómo salir del programa. Introduzco datos, pero no tengo forma de cerrar la consola (terminar el programa).

Por otro lado, el redondeo que realiza no veo que sea el correcto. Por ejemplo:

Citar
Por favor introduzca la base imponible: :0.70
Por favor introduzca el porcentage a aplicar: 3

Antes de redondeo

Base imponible: 0.7
Porcentage a aplicar: 3.0
Total Impuesto: 0.020999999999999998
Total a pagar: 0.721


Despues de redondeo

Base imponible: 0.7
Porcentage a aplicar: 3.0
Total Impuesto: 0.03
Total a pagar: 0.73

Sin embargo, el total a pagar con redondeo debe ser 0.72.

El problema posiblemente está relacionado con el uso de RoundingMode.UP en lugar de RoundingMode.HALF_UP

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

Salu2

6
Buenas, para quien revise este ejercicio, aquí parece haberse confundido el código con código de otro ejercicio ya que aparece <<System.out.print("Y el DNI no debe de exceder de 8 digitos");>> cuando el ejercicio relativo a DNIs era otro anterior.

Puede consultarse una solución correcta para este ejercicio en https://aprenderaprogramar.com/foros/index.php?topic=4763.0

Salu2

7
Buenas, para quien revise este ejercicio, algunos comentarios. La idea aquí era mantener un número asociado a un país, p.ej. Argentina <-0, España <-1, Francia <-2, Italia <-3, etc. y cada ciudad de cada país otro número dentro de un array multidimensional. Así Ciudad[0][0] sería por ejemplo Buenos Aires, que es la primera ciudad del primer país, Ciudad[0][1] sería Córdoba, Ciudad[0][2] sería La Plata, etc.. Cuando se trabaja con arrays, salvo circunstancias muy concretas, siempre se usa el cero como primer índice del array.

Por esto no veo correcto lo que se comenta en el código: "//Indice para las ciudades se comienza en el indice n,1 porque el indice n,0 es el de los paises"

El planteamiento no parece cumplir con lo que pide el ejercicio. Puede verse una solución correcta en https://aprenderaprogramar.com/foros/index.php?topic=5667.0

Salu2

8
Buenas, para quien revise este ejercicio, está correcto y conforme a lo que se pedía. Salu2

9
Buenas, para quien revise este ejercicio, las respuestas son correctas. Sobre la situación semejante a la herencia múltiple, pueden verse algunos comentarios en este hilo: https://aprenderaprogramar.com/foros/index.php?topic=2965.0

Salu2

10
Buenas, para quien revise este ejercicio, las respuestas son correctas. En la pregunta c), la respuesta es que sí, pero el ejemplo no es correcto ya que el tipo definido como interface es B y no MiClase. Puede verse una respuesta correcta y comentarios adicionales en https://aprenderaprogramar.com/foros/index.php?topic=1332.0

Salu2

11
Buenas, para quien revise este ejercicio dejo planteada una cuestión y un comentario.

Si nos fijamos en el código, hay atributos que podrían considerarse "repetidos" en las clases Diputado y Senador, por ejemplo camaraEnQueTrabaja. ¿Cómo podría modificarse el diseño para que este atributo y sus métodos sean comunes a ambas clases? ¿Incumpliría esto el enunciado del ejercicio? ¿Estaría esto más o menos de acuerdo con los principios de la programación orientada a objetos?

Otro detalle ya comentado en algunos ejercicios: en general sería preferible en lugar de
Diputado dipu1 = new Diputado("José", "López Sanchez", 45, "Valencia","Ministro de Agricultura, Pesca y Alimentación",2500.65,"Congreso", "Partido Sinigual");

Usar

Legislador dipu1 = new Diputado("José", "López Sanchez", 45, "Valencia","Ministro de Agricultura, Pesca y Alimentación",2500.65,"Congreso", "Partido Sinigual");

Salu2

12
Buenas, para quien revise este ejercicio comentar que la clase Figura tiene declarado su atributo dimensionPrincipal sin modificador de acceso (public, private, protected). Esto es legal dentro del lenguaje, pero, excepto se haga por motivos muy concretos, suele considerarse una mala práctica de programación. Por norma general declararemos los atributos private, tal y como se ha ido haciendo en el curso.

Puede verse algún comentario adicional en https://aprenderaprogramar.com/foros/index.php?topic=2973.0

Salu2

13
Buenas, para quien revise este ejercicio, las respuestas son correctas. En el hilo https://aprenderaprogramar.com/foros/index.php?topic=2449.0 puede verse algún comentario adicional.
Salu2

14
Buenas, para quien revise este ejercicio, está correcto. Se puede comprobar cómo se ha utilizado la herencia para reutilizar código invocando a super.

Salu2

15
Buenas, para quien revise este ejercicio, algunos comentarios.

En lugar de "No se puede hacer t=v por que el objeto Vehiculo no puede heredar del objeto Taxi" sería más correcto "No se puede hacer t=v por que el objeto t que contiene una referencia a una instancia de subclase no se puede hacer que apunte a una instancia de superclase porque el compilador no lo permite debido a que generaría inseguridad de tipos."

El método toString() no está correctamente planteado porque no se hace uso de reutilización de código entre la subclase y la superclase. Es decir, el método de la subclase debe reutilizar el método de la superclase invocándolo con la palabra clave super. Tal y como está planteado, si se invoca toString() sobre un objeto Taxi, no se muestra la información de matrícula y número de ruedas.

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

Salu2

16
Buenas, para quien revise este ejercicio, comentar que en el código propuesto hay algunos elementos con los que no se ha trabajado en el curso y distintas cosas que habría que mejorar, por lo que no es recomendable usarlo como guía de solución.

Para implementar el polimorfismo explícitamente, todos los elementos deberíamos declararlos con el tipo estático común Producto, e instanciarlos con la clase concreta subclase de Producto. Por ejemplo no usaríamos:

Código: [Seleccionar]
        ProductoFresco productoFrescoA = new ProductoFresco("Patatas","15-1-2019","PA25421",5,"12-4-2018","España");
        ProductoRefrigerado productoRefrigradoA = new ProductoRefrigerado ("Merluza","15-10-2019","AS26453",1,"OSA2020" );
        CongeladoPorAgua productoPorAguaA = new CongeladoPorAgua ("Patata Prefrita","15-02-2021","AS25953",5,-25,5);
        CongeladoPorAire productoPorAireA = new CongeladoPorAire ("Sepia Extra","15-11-2025","AS25853",-15,-25,5,8,12,25);

etc.

Sino:

Código: [Seleccionar]
        Producto productoFrescoA = new ProductoFresco("Patatas","15-1-2019","PA25421",5,"12-4-2018","España");
        Producto productoRefrigradoA = new ProductoRefrigerado ("Merluza","15-10-2019","AS26453",1,"OSA2020" );
        Producto productoPorAguaA = new CongeladoPorAgua ("Patata Prefrita","15-02-2021","AS25953",5,-25,5);
        Producto productoPorAireA = new CongeladoPorAire ("Sepia Extra","15-11-2025","AS25853",-15,-25,5,8,12,25);

De esta forma implementamos el polimorfismo: todos los elementos son del supertipo y al mismo tiempo del subtipo concreto.

Otro aspecto a mejorar sería la herencia: el método presentarDatos() no está haciendo uso de la herencia, ya que no se invoca a super. De este modo, no está evitando la duplicidad de código entre las superclases y subclases. Este método no es un ejemplo de polimorfismo (está comentado así en el código, pero esto es erróneo).

Otro aspecto a mejorar sería la forma de nombrar las clases. En lugar de nombrarse en plural, es preferible nombrarlas en singular. Hay nombres no adecuados como "TemperaturaManteni". En este hilo se dan algunas indicaciones interesantes sobre cómo nombrar las clases en Java: https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

Si se quiere ver una solución correcta y que se ciñe a los contenidos del curso puede consultarse https://aprenderaprogramar.com/foros/index.php?topic=2959.0

Aún con todo lo dicho, felicitar al autor del código por el esfuerzo y porque "haciendo" es como se aprende.

Salu2

17
Buenas, para quien revise este ejercicio, indicar que está correcto y cumple con lo que se pedía. Como observaciones: recomendamos que las etiquetas que no tienen cierre commo <meta charset="utf-8"> se cierren de la siguiente manera: <meta charset="utf-8" /> con el fin de cumplir el estándar XHTML. Por otro lado, indicar que hay una imagen con un formato poco adecuado para este curso por su formato y por su longitud. Si se desea ver un ejemplo de solución con urls más cortas puede consultarse https://aprenderaprogramar.com/foros/index.php?topic=3037.0

Salu2

18
Buenas, para quien revise este ejercicio, comentar que en el código propuesto hay algunos elementos con los que no se ha trabajado en el curso. Por otro lado, resulta un diseño más extenso y con más clases de las que se piden en el curso, por lo que no es recomendable usarlo como guía de solución, ya que resulta un diseño complejo y difícil de depurar en relación a los contenidos del curso (sí puede usarse por quien desee ver distintas formas de plantear diseños de soluciones).

Si se quiere ver una solución que se ciñe a los contenidos del curso puede consultarse https://aprenderaprogramar.com/foros/index.php?topic=2342.0

Salu2

19
Buenas, para quien revise este ejercicio, en líneas generales sigue lo pedido. Dejo algunos comentarios que pueden ser de interés:

- En el código propuesto hay algunos elementos con los que no se ha trabajado en el curso (como uso de java.io.* para pausar pantalla). Si se quiere ver una solución que se ciñe a los contenidos del curso puede consultarse https://aprenderaprogramar.com/foros/index.php?topic=1179.0

- Un aspecto a mejorar sería la forma de nombrar las clases. En lugar de nombrarse en plural, es preferible nombrarlas en singular. Hay nombres no adecuados como "Pausar". En este hilo se dan algunas indicaciones interesantes sobre cómo nombrar las clases en Java: https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

- Otro aspecto mejorable es que no se ha reutilizado código en todas sus posibilidades aprovechando las propiedades de la herencia Java. Si nos fijamos en cómo se muestra la información de los productos, para un producto fresco, se usa

Código: [Seleccionar]
System.out.print ("******DATOS EN PRODUCTOS FRESCOS******\n" +
            "Fecha de caducidad  : "+
            testProFresco.getFechaCaducidad()+

Y luego para un producto refrigerado, etc. prácticamente se repite el mismo código.

La repetición de código en general indica un mal diseño. En este caso, dado que tanto productos frescos como productos refrigerados tienen cosas en común, lo preferible hubiera sido tratarlo en común, evitando tener que repetir. Para entender a qué me refiero, recomiendo consultar https://aprenderaprogramar.com/foros/index.php?topic=1179.0 y ver el tratamiento que se da al método verInfoProducto(). Si nos fijamos, en las subclases se invoca el método de la superclase, evitando tener que repetir código.

Salu2

20
Buenas, para quien revise este ejercicio, el diseño es correcto. Como aspecto a mejorar tendríamos la forma de nombrar las clases. En este hilo se dan algunas indicaciones interesantes sobre cómo nombrar las clases en Java: https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

Salu2

Páginas: [1] 2 3 4 5 6 ... 91
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".