Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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.
/*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
-
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..
/*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
-
Hola Javier22
Gracias por tu ayuda amigo, voy a corregir los errores cometidos, para solucionar todo.