Código en java para convertir los grados farenheit a centígrados

Elabora un programa en Java solicite al usuario la temperatura ambiental actual en grados Farenheit y posteriormente muestre su equivalente en grados centígrados y un mensaje con información sobre si se trata de una temperatura conveniente para realizar deporte al aire libre. La fórmula que debes implementar para convertir los grados farenheit a centígrados es: 𝐶 = (𝐹 − 32) ∗ 59

El programa debe mostrar un mensaje si se trata de una temperatura “ideal”, “peligrosa” o “contraindicada” para hacer deporte al aire libre, considerando la siguiente escala:

  • Ideal: Entre 20° y 25° C
  • Peligrosa: Más de 25° y hasta 32° C
  • Contraindicada: Más de 32° C

Si la temperatura es menor a 20° C el programa debe mostrar un mensaje que diga “Temperatura no clasificada”

Ejemplo 1:

Para una temperatura de 89 grados farenheit, el cálculo en Centigrados C° es = (89-32)*(5.0/9.0). La salida del programa debe ser similar a la siguiente:

La temperatura de 89 grados farenheit corresponde a 31.66 grados centígrados. Esta temperatura es “peligrosa” para hacer deporte al aire libre.

1

1 Respuesta

Lamentablemente no tenía ningún IDE a mano, así que he hecho el código de memoria en el bloc de notas, es posible que haya algún fallo menor de sintaxis.

Hay varias formas de resolver este ejercicio dependiendo del nivel de conocimientos que tengas.

Esta sería una opción relativamente sencilla, en la que se recoge la temperatura inicial en grados farenheit en una variable de tipo double (tempFar). Después, creamos la variable (tempCel) para obtener la temperatura final en grados celsius.

Una vez tenemos la temperatura que queremos, utilizamamos el algoritmo condicional if/else if para evaluar la entrada que deberíamos sacar.

No hay ningún tipo de control de errores y el algoritmo no es demasiado eficiente, pero creo que es la solución más sencilla de entender. Si tuvieras alguna duda con este código o necesitaras hacerlo de forma más eficiente estaré encantado de ayudarte.

¡Un saludo!

import java.util.Scanner; 
public class ejercicioGrados{ 
public static void main(String[] args) { 
    Scanner entrada = new Scanner(System.in); 
    System.out.println("Introduce la temperatura ambiental en ºF"); 
    double tempFar = entrada.nextDouble();
    double tempCel= (tempFar−32)*59;
    if(tempCel >= 20 && tempCel<= 25) {
        System.out.println("La temperatura de "+tempFar+" grados farenheit corresponde a "+tempCel+" grados centígrados. Esta temperatura es ideal para hacer deporte);
    } else if (tempCel > 25 && tempCel<= 32){
        System.out.println("La temperatura de "+tempFar+" grados farenheit corresponde a "+tempCel+" grados centígrados. Esta temperatura es peligrosa para hacer deporte);
    } else if (tempCel > 32){
        System.out.println("La temperatura de "+tempFar+" grados farenheit corresponde a "+tempCel+" grados centígrados. Esta temperatura es contraindicada para hacer deporte);
    }
} 
}

Acabo de encontrar un error de sintaxis.

Al final de cada sentencia sacando por pantalla la temperatura falta un cierre de comillas (") entre la palabra deporte y el cierre de la sentencia );.

La sintaxis correcta sería:

if(tempCel >= 20 && tempCel<= 25) {
        System.out.println("La temperatura de "+tempFar+" grados farenheit corresponde a "+tempCel+" grados centígrados. Esta temperatura es ideal para hacer deporte");
    } else if (tempCel > 25 && tempCel<= 32){
        System.out.println("La temperatura de "+tempFar+" grados farenheit corresponde a "+tempCel+" grados centígrados. Esta temperatura es peligrosa para hacer deporte");
    } else if (tempCel > 32){
        System.out.println("La temperatura de "+tempFar+" grados farenheit corresponde a "+tempCel+" grados centígrados. Esta temperatura es contraindicada para hacer deporte");
    }

Te agradezco muchísimo, ¡Gracias! 

Por otro como se podría realizar implementando métodos.

Yo genere el código similar me tarde pero logre que hiciera la función, sin embargo el profesor dice que debo incluir métodos, desconozco como implementarlos, podrías ayudarme.

public static void main(String[] args) {
String tecla = null;
Scanner scanner = new Scanner (System.in);
do {
System.out.println("Menu de opciones");
System.out.println ("1) Temperatura");
System.out.println();
System.out.println("Ingresar opcion:");
int opcion = scanner.nextInt();
boolean opc = (opcion <= 1);
if (opc) {
System.out.println("Ingresar temperatura");
double f = scanner.nextInt();
double c=(f-32)*5/9;
System.out.println(f+"ºF la temperatura es de " +c+"°C");
if (opcion==0) {
System.out.println();
if(c >=32){
System.out.println("la temperatura es contraindicada para hacer cualquier actividad al aire libre. ");
}
else if(c > 26 && c < 31){
System.out.println("la temperatura es peligrosa para hacer deporte al aire libre. ");
}
else if(c > 20 && c < 25){
System.out.println("la temperatura es ideal para hacer deporte al aire libre. ");
}
else if(c > 1 && c < 19){
System.out.println("Temperatura no clasificada");
}
} else {
}
System.out.println("S para seguir, N para terminar");
System.out.println();
System.out.print("\n¿Desea revisar otra temperatura?\n");
tecla = new Scanner(System.in).nextLine();
} while (tecla.equals("s") || tecla.equals("S"));
}
}

Muchas gracias.

Te adjunto una posible solución.

Un método es una parte del código, y solemos crearlos para ahorrarnos tener que escribir varias veces lo mismo. Lo ideal es dejar el método Main (public static void main(String[] args)), que es el método principal y el primero en ejecutarse lo más limpio posible y segmentar las operaciones en otros métodos.

Por ejemplo, si alguna vez tienes que programar una calculadora, lo ideal sería tener el menú en el método Main, y un método por cada operación que quieras hacer (suma, resta, multiplicación, división...). De esta forma, el programa ejecuta directamente lo que necesita sin tener que pasar por código que no va a utilizar.

Es importante que te familiarices con los conceptos de método, parámetro y su funcionamiento, he intentado explicarlo muy brevemente con comentarios de código, pero tienes que tenerlo muy claro.

¡Un saludo!

public static double calculaCelsius(double gradosFarenheit) {
        //Para ahorrar código, devolvemos (return) gradosFarenheit - 32) * 5 / 9, aplicando el método Math.round() para redondear decimales.
        return Math.round((gradosFarenheit - 32) * 5 / 9);
    }
    public static String mensaje(double c){
        if (c >= 32) {
            return "La temperatura es contraindicada para hacer cualquier actividad al aire libre. ";
        } else if (c > 26 && c < 31) {
            return "La temperatura es peligrosa para hacer deporte al aire libre. ";
        } else if (c > 20 && c < 25) {
            return "La temperatura es ideal para hacer deporte al aire libre. ";
        } else {
        return "Temperatura no clasificada";
        }
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Ingrese la temperatura en grados farenheit");
        double f = scanner.nextInt();
        double c = calculaCelsius(f);
        String consejo = mensaje(c);
        System.out.println(f + "ºF equivalen a " + c + "°C. "+consejo);
    }

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas