Título: Array con returns? Publicado por: AlvaradoGunner en 23 Enero 2009, 21:39 pm Hola, soy nuevo y bueno me encargaron esto:
Elaborar un programa que incluya métodos para realizar conversiones de temperatura. El programa debe contener métodos (con tipo de retorno double) para convertir de Celsius a Fahrenheit y viceversa, de Celsius a Kelvin y viceversa, y finalmente de Fahrenheit a Kelvin y viceversa. El método main debe contener al menos una llamada a cada método con su respectiva impresión a pantalla del resultado obtenido. Trate de hacerlo lo mas "corto"posible.. es decir. no quiero hacer seis metodos.. pero bueno. esta es mi error: Citar --------------------Configuration: <Default>-------------------- C:\putamadre.java:16: missing return statement } ^ C:\putamadre.java:27: missing return statement } ^ C:\putamadre.java:38: missing return statement } ^ 3 errors Process completed. Y aqui mi programa: Citar class putamadre{ // Variables Globales static int i; static double resultados[]=new double[1],Celsius=90.0,Kelvin=90.0,Fahr=90.0; //Método Celsius a F y a K public static double CelsFahKel(double Fahr,double Kelvin){ resultados[0]=(Fahr-32)/(1.8); resultados[1]=Kelvin-273.15; for(i=1;i<=2;i++){ return resultados; } } //Método Fahrenheit a C y a K public static double FahCelsKel(double Celsius,double Kelvin){ resultados[0]=Celsius*1.8+32; resultados[1]=9/5*Kelvin+32; for(i=0;i<=1;i++){ return resultados; } } //Método Kelvin a C y F public static double KelCelsFah(double Celsius,double Fahr){ resultados[0]=Celsius+273.15; resultados[1]=(Fahr-32)*5/9; for(i=0;i<=1;i++){ return resultados; } } //Método Main public static void main(String args[]){ CelsFahKel(Fahr,Kelvin); System.out.println("Celsius a Fahrenheit :"+resultados[0]+" Celsius a Kelvin:"+resultados[1]); FahCelsKel(Celsius,Kelvin); System.out.println("Fahrenheit a Celsius:"+resultados[0]+" Fahrenheit a Kelvin:"+resultados[1]); KelCelsFah(Celsius,Fahr); System.out.println("Kelvin a Celsius:"+resultados[0]+" Kelvin a Fahrenheit:"+resultados[1]); }//Fin de Main }//Fin de clase Eso seria, se pueden mandar mas de 1 return por metodo?. Cómo?, Tendre que hacer 6 metodos?. Gracias!. Título: Re: Array con returns? Publicado por: -Ramc- en 23 Enero 2009, 21:45 pm No entiendo para que haces fors de una sola vuelta lol y otro de 2 devolviendo valores, es decir, solo puedes devolver un valor por llamada a un método, si quieres devolver mas de uno, devuelve un vector, esto me huele a copy-paste.
Título: Re: Array con returns? Publicado por: AlvaradoGunner en 23 Enero 2009, 22:04 pm Bueno. en realidad todos hacen 2 ciclos, yo lo que preguntoe s que si apartir de fors se le puede asignar el valor al arreglo resultados i, y los devuelva. Porcierto, puedes ponerme un ejemplo?
Título: Re: Array con returns? Publicado por: Amerikano|Cls en 23 Enero 2009, 23:41 pm Código
Esto no tiene sentido, pues al ejecutar el return se saldra de una del método y no alcanzara al otro ciclo es decir al segundo. Este tambien es otro error que hay: Código
pues la declaracion de un arreglo es como sigue: Código
Y sobre lo otro si lo que quieres es devolver todo el array, basta con quitar el for y ya, pero eso si debes modificar el tipo de retorno de cada método para que devuelva un Double[] (arreglo de tipo Double): Código
Y para la llamada del método desde el main(), haces esto: Código
Y ya solo basta con repetir la asignacion y enseguida el print para cada metodo y yap, eso si a cada metodo debes hacerles las modificaciones que acabas de ver ;). Un salu2 y para la proxima no te haremos tus tareas :-X Título: Re: Array con returns? Publicado por: Ragnarok en 24 Enero 2009, 07:07 am Trate de hacerlo lo mas "corto"posible.. es decir. no quiero hacer seis metodos.. pero bueno. esta es mi error: Antes que nada, esa no es forma de programar, el código que has hecho no es claro y tiene una cohesión muy baja en los métodos que presenta, y el acoplamiento es bastante mejorable. Java no tiene yield como python, por lo que cada método hace un único return, si quieres devolver varias cosas las tienes que devolver a la vez. De todas formas con dos métodos te vale, en el primero (debería ser el constructor de la clase conversor) pasas el valor de la temperatura y las unidades en que se mide, y como segundo método haces un get del valor pasando las unidades en que lo quieres. Menos que eso no se puede hacer. |