Autor Tema: Entrega CU00644B tutorial Java para principiantes: Ejercicio multiplicadorDieces  (Leído 3352 veces)

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Hola,
abajo pongo el código que he usado para resolver el ejercicio.
Sé que funciona perfectamente, pero mirando las soluciones de otros compañeros, me he fijado que lo he resuelto de manera un pelín distinta.
No he visto ha nadie hacer lo mismo que yo, así que, aunque básicamente viene a ser lo mismo y el código funciona, me asalta la duda de si mi solución pudiera ser poco recomendable por algún motivo.

EDITO:Fallo mio! Acabo de darme cuenta de que mi código no funciona, bueno solo funciona si pasas un 2 como segundo parametro que es lo que probé je je.  Para números mayores la multiplicación resulta una burrada.....fallo matemático mío

Me refiero a la línea dentro del bucle for
Yo lo que hago es declarar previamente una variable con valor 10 y luego dentro del bucle la multiplico por sí misma tantas veces como nos hayan indicado con el segundo parámetro solicitado (y)
Para ello pongo una línea que a priori parece un poco rara pero que funciona:
potencia=potencia*potencia;

Otros compañeros lo que han hecho es declarar una variable con valor 1 y luego dentro del bucle multiplicarla por 10:
potencia=potencia*10;

A efectos prácticos viene a ser lo mismo, tan solo hay variar ligeramente la condición a cumplir para salir del bucle, puesto que ya partimos con valor 10 en la variable.
Pero no se si quizás resulta un poquito más confuso lo que yo hago y por ello pudiera ser poco recomendable.


Otra cosa distinta es que en lugar de poner un constructor vacío, he optado por un simple comentario indicando que no es necesario. De nuevo no se si esto pudiera considerarse una mala práctica.

Agradeceré cualquier comentario o consejo. Un saludo.

Código: [Seleccionar]
public class MultiplicadorDieces{

    //No se necesita constructor
   
   
    public double multiplicaPorDieces (double x, int y) {
        double potencia=10;
       
        for (int i=1; i<y; i++){
            potencia=potencia*potencia;
        }
       
       return Math.round(potencia*x);
    }
 }
« Última modificación: 01 de Abril 2015, 18:32 por Alex Rodríguez »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:ENTREGA:CU00644B: Ejercicio multiplicadorDieces
« Respuesta #1 en: 01 de Abril 2015, 15:27 »
Hola Kabuto

Tal como observas tú mismo, tu código no funcicona correctamente.
Viendo como dices, las diferencias que tienes con otras soluciones aportadas, seguro que puedes modificar el código para que haga bien su trabajo.

Hay problemas que se pueden solucionar de pocas formas. 2 + 2 solo se puede hacer de una manera.
Lo importante del código es que lo entiendas, luego podrás hacer mejoras y podrás decir que esta mejora es 100% tuya, pero de momento aprovecha lo que tienes a mano.

En cuanto al constructor. Si tu clase no tiene constructor, Java lo crea automáticamente, sino no podrías crear objetos basados en esta clase.
Es decir, el hecho de que no lo crees no quiere decir que no exista. La elección es tuya.

Saludos

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Muchas gracias por tu respuesta.

Fíjate que me dí cuenta de mi error pasada media noche, tumbado en la cama ja ja..no se por qué me vino a la cabeza este ejercicio y me di cuenta de mi cagada, ya a punto de dormirme con luces y ordenador apagados, por lo que edité el mensaje desde el móvil.

El código lo entiendo, la programación se me da bastante bien. De "joven" daba Pascal y Cobol en el Instituto (nada de programación orientada a objetos), ya en pleno año 2000, me gustaba pero terminé el instituto con conocimientos desfasados..., pero no inútiles.

El año pasado en un curso de HTML, aprendí algo de JavaScript y eso (además de que los tutoriales de esta web son inmejorables...) me está facilitando aprender Java y captar rápidamente ciertos conceptos.

En lo que fallo, como ha quedado demostrado, es en las Matemáticas jeje.. ahí no tengo arreglo.

En fin, gracias de nuevo y enhorabuena a todos vosotros por la labor que hacéis aquí.
« Última modificación: 02 de Abril 2015, 00:45 por Kabuto »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

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