Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: edioswaldo en 13 de Septiembre 2015, 06:10
-
Buenas estimados, favor darme revisando si esta bien el código.
Por cierto tuve que importar una clase para poder usar un objeto y redondear o darle formato a una variable tipo double, ya que al hacer los calculos me salian hasta 9 decimales. No se si se puede omitir o hacer de otra forma. ;D
/* EJERCICIO
Fecha:12-09-2015
Define una clase denominada multiplicadorDieces con un constructor vacío y que contenga un método
denominado multiplicarPorDieces que reciba dos parámetros:
el primero un número de tipo double y el segundo un número de tipo entero.
El método debe devolver el resultado de multiplicar por 10 elevado al segundo número el primer número.
Ejemplo: multiplicarPorDieces (2.55, 2) devuelve 2.55*100 = 255.
multiplicarPorDieces (3, 5) devuelve 3*100000 = 300000.
MultiplicarPorDieces (-0.0563, 3) devuelve -0.563 * 1000 = -56.3.
Crea un objeto y comprueba que el método opera correctamente.
Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.
*/
import java.text.*;//importo clase para poder dar formato a tipo "double" a 2 numeros
public class multiplicadorDieces{//Nombre de la clase
//Sin atributos para el eljemplo
//Constructor general vacio
public multiplicadorDieces(){ }
//método
public String multiplicarPorDieces(double num1, int num2){
int acumulador=1;
String cadena="";
for(int x=1;x<=num2;x++){
acumulador*=10;
}
DecimalFormat df = new DecimalFormat("#.##");//creo objeto df
cadena="Multiplicador por Dieces: "+ num1 + " * " + acumulador + " = " +df.format (num1*acumulador);
System.out.println(cadena);
return cadena;
}//cierre del método
}//cierre de la clase Abstracta
Gracias por su ayuda.
-
Hola edioswaldo Tu código funciona pero tiene algo que no está bien resuelto. El ejercicio dice
El método debe devolver el resultado de multiplicar por 10 elevado al segundo número el primer número.
El resultado del método es una operación de multiplicación por eso lo más adecuado es que el resultado del método sea un valor numérico y no un String, es decir en vez de public String multiplicarPorDieces(double num1, int num2){
usar public double multiplicarPorDieces(double num1, int num2){
Sería:
import java.text.*;//importo clase para poder dar formato a tipo "double" a 2 numeros
public class multiplicadorDieces2{//Nombre de la clase
//Sin atributos para el eljemplo
//Constructor general vacio
public multiplicadorDieces2(){ }
//método
public double multiplicarPorDieces(double num1, int num2){
int acumulador=1;
double resultado = 0.0;
for(int x=1;x<=num2;x++){
acumulador*=10;
}
DecimalFormat df = new DecimalFormat("#.##");//creo objeto df
String cadena="";
resultado = num1*acumulador;
cadena="Multiplicador por Dieces: "+ num1 + " * " + acumulador + " = " +df.format(resultado);
System.out.println(cadena);
return resultado;
}//cierre del método
}//cierre de la clase Abstracta
El método format de DecimalFormat genera un String y eso lo podemos usar para mostrar algo por pantalla pero si queremos devolver un double y quisiéramos redondearlo hay varias maneras de hacerlo.
Realmente el ejercicio no pedía que se mostrara por pantalla el resultado, puedes ver una solución más simple en https://www.aprenderaprogramar.com/foros/index.php?topic=1972 Para comprobar que el método funcione basta con crear un objeto en BlueJ y invocar el método, desde ahí se pueden ver los resultados de ejecutar el método sin necesidad de mostrar nada por consola.
Salu2
-
Muchas gracias por el consejo, lo tomare muy en cuenta para los próximos ejercicios, aunque mas lo hice asi de presentar por pantalla para evitar la fatiga de crear el objeto y visualizar jajaja. Pero gracias por la correción al ejercicio.
Saludos cordiales.