En este post sobre programación en Java veremos un ejercicio que como principiantes se nos puede dificultar pero que al entenderlo notamos que es muy sencillo.
Se trata de convertir Celsius a Fahrenheit y lo contrario a eso: convertir Fahrenheit a Celsius.
Convirtiendo fórmulas en funciones
Lo único que tenemos que hacer es que, teniendo las fórmulas para convertir F a C y viceversa, debemos convertirlas a funciones.
Esto no es obligatorio, pero así se entiende de mejor manera y separamos la lógica. Por ejemplo, para convertir Celsius / Centígrados a Fahrenheit la función sería:
public static float celsiusAFahrenheit(float celsius) {
return (celsius * 1.8f) + 32;
}
No voy a meterme en temas de fórmulas matemáticas, con que las tengamos claras basta. Y para el proceso inverso queda así:
public static float fahrenheitACelsius(float fahrenheit) {
return (fahrenheit - 32) / 1.8f;
}
Una vez que ya tenemos ambas funciones podemos invocarlas.
Probando conversión
Veamos un primer ejemplo en donde imprimimos cuántos grados celsius son 10 grados Fahrenheit:
public static void main(String[] argumentos) {
float fahrenheit = 10;
// Calcular
float celsius = fahrenheitACelsius(fahrenheit);
System.out.printf("%f grados fahrenheit son %f grados celsius", fahrenheit, celsius);
}
La salida será: 10.000000 grados fahrenheit son -12.222222 grados celsius. Además de esto, podemos hacer lo inverso, y también podemos hacer que el usuario digite los grados.
Solicitar datos para conversión Celsius a Fahrenheit
Terminemos este ejemplo en donde se le pide al usuario que coloque el valor de los grados celsius e imprima el valor de los grados Fahrenheit a los que equivale. Queda así:
public static void main(String[] argumentos) {
float celsius;
Scanner sc = new Scanner(System.in);
System.out.println("Ingresa los grados celsius: ");
celsius = sc.nextFloat();
// Calcular
float fahrenheit = celsiusAFahrenheit(celsius);
System.out.printf("%f grados celsius son %f grados fahrenheit", celsius, fahrenheit);
}
Poniendo todo junto
El código final para la conversión de unidades de temperatura en Java queda así. Recuerda que es un ejemplo y que puedes ampliarlo o modificarlo para tus necesidades:
import java.util.Scanner;
public class Main {
public static void main(String[] argumentos) {
float celsius;
Scanner sc = new Scanner(System.in);
System.out.println("Ingresa los grados celsius: ");
celsius = sc.nextFloat();
// Calcular
float fahrenheit = celsiusAFahrenheit(celsius);
System.out.printf("%f grados celsius son %f grados fahrenheit", celsius, fahrenheit);
}
public static float celsiusAFahrenheit(float celsius) {
return (celsius * 1.8f) + 32;
}
public static float fahrenheitACelsius(float fahrenheit) {
return (fahrenheit - 32) / 1.8f;
}
}