elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Array con returns?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Array con returns?  (Leído 6,904 veces)
AlvaradoGunner

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Array con returns?
« 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!.


En línea

-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: Array con returns?
« Respuesta #1 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.


En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
AlvaradoGunner

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Array con returns?
« Respuesta #2 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?
« Última modificación: 23 Enero 2009, 22:07 pm por AlvaradoGunner » En línea

Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: Array con returns?
« Respuesta #3 en: 23 Enero 2009, 23:41 pm »

Código
  1. for(i=1;i<=2;i++){
  2.   return resultados;
  3. }

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
  1. static double resultados[]=new double[1],Celsius=90.0,Kelvin=90.0,Fahr=90.0;

pues la declaracion de un arreglo es como sigue:

Código
  1. Tipo_Dato nombre[] = new Tipo_Dato[longitud_Array]

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
  1. public static double[] CelsFahKel(double Fahr,double Kelvin){
  2.  
  3. resultados[0]=(Fahr-32)/(1.8); //asignas los valores
  4. resultados[1]=Kelvin-273.15;
  5.  
  6. return resultados; //Retorna el arreglo
  7. }

Y para la llamada del método desde el main(), haces esto:

Código
  1. public static void main(String args[]){
  2.  
  3. double[] temp = new double[1];
  4. temp =  CelsFahKel(Fahr,Kelvin);
  5. System.out.println("Celsius a Fahrenheit :"+temp[0]+" Celsius a Kelvin:"+temp[1]);
  6.  
  7. //Luego vuelves a repetir esto a excepcion de la declaracion del array, para cada metodo.
  8.  
  9.  
  10. }

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
« Última modificación: 23 Enero 2009, 23:46 pm por AmeRiK@nO » En línea





Mi blog:
http://amerikanocls.blogspot.com
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.590


Shrödingerificado


Ver Perfil
Re: Array con returns?
« Respuesta #4 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.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[?] funciones inline y returns
Programación C/C++
oxydec 1 3,434 Último mensaje 8 Abril 2011, 08:45 am
por Akai
Infinita Noobness returns
Análisis y Diseño de Malware
ChukerSweet 0 2,168 Último mensaje 11 Marzo 2014, 03:41 am
por ChukerSweet
Subquery returns more than 1 row
Bases de Datos
KateLibby 1 3,284 Último mensaje 31 Enero 2022, 13:04 pm
por KateLibby
qué es preferible múltiples returns o un solo return?
Dudas Generales
Locura_23 2 1,666 Último mensaje 4 Enero 2023, 21:47 pm
por Locura_23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines