Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Damian en 28 de Enero 2017, 08:17

Título: Objetos del mundo real y abstractos en Java. Ejemplos y ejercicio CU00644B
Publicado por: Damian en 28 de Enero 2017, 08:17
Concepto y definición de clase en Java. Objetos del mundo real y abstractos. Ejemplos y ejercicio. (CU00644B).

Hola a todos.

Este es el ejercicio de este nivel, en la que tocaba definir una clase denominada multiplicadorDieces.

Código: [Seleccionar]
/*Ejemplo - Multiplicador
 * Damian
 */
public class multiplicadorDieces{

    //Constructor     
    public multiplicadorDieces(){
        //Nada que declarar
    }

    //Método 1
    public int multiplicarPorDieces(int expo, double fac){
        int resultado= 1;
        for(int i = 1; i <= expo; i++){
            resultado = resultado * 10;
        }

        return resultado;
    }//Cierre del método

    //Método 2

    public double multiplicacionPorDieces(int expo, double fac){
        if (fac == 0){return 1;
        }else {return fac * multiplicacionPorDieces(expo, fac - 1);}
       
        }//Cierre del método
}//Cierre de la clase
.

Me gustaría saber si los códigos están bien, ya que esta clase multiplicadorDieces, se me ha dificultado bastante y me gustaría saber en que hay que mejorar, en cuanto a la compilación, sale bien al igual que en la consola, pero, cuando se ejecuta la operación, no da el resultado que debería salir, como por ejemplo: multiplicarPorDieces (2.55, 2) devuelve 2.55*100 = 255.

Sería de gran ayuda su opinión.

Gracias
Título: Re:Objetos del mundo real y abstractos. Ejemplos y ejercicio. (CU00644B)
Publicado por: javier22 en 28 de Enero 2017, 17:19
Los métodos para este ejercicio deben devolver valores de tipo double, falta multiplicar el valor de tipo double por el resultado de la exponenciacion.  En el recursivo tomastes los valores cambiados debes ir decreciendo el valor del exponente es decir la variable expo y no el de fac  talvez la confusion se debe a que en el ejercicio segun el enunciado el valor double lo tiene primero y el int segundo este tipo de cosas hay que tener en cuenta al momento de codificar y realizar las pruebas , mas o menos esta seria la solución..


Código: [Seleccionar]
/*Ejemplo - Multiplicador
 * Damian
 */
public class multiplicadorDieces{

    //Constructor     
    public multiplicadorDieces(){
        //Nada que declarar
    }

    //Método 1
    public double multiplicarPorDieces(int expo, double fac){
        int resultado= 1;
        for(int i = 1; i <= expo; i++){
            resultado = resultado * 10;
        }
       
        return resultado * fac ;
    }//Cierre del método

    //Método 2

    public double multiplicacionPorDieces(int expo, double fac){
        if (expo== 0){return 1 * fac;
        }else {return 10 * multiplicacionPorDieces(expo-1, fac);}
       
        }//Cierre del método
}//Cierre de la clase


Título: Re:Objetos del mundo real y abstractos. Ejemplos y ejercicio. (CU00644B)
Publicado por: Damian en 29 de Enero 2017, 22:32
Hola Javier22

Gracias por tu ayuda amigo, voy a corregir los errores cometidos, para solucionar todo.