Adloun

programmation Java (école d'ingénieur) · Chapitre 4 · Exercice de TD

Températures et tests

Méthodes · niveau 1 (application)

Énoncé

  • Écrire une méthode static double celsiusVersFahrenheit(double c) ().
  • Écrire une méthode de test verifierTemp(double c, double attendu) et la lancer sur , , et  °C (attendu : , , et  °F). Que se passe-t-il pour si l'on compare avec == ? Comment écrire la comparaison ?

Corrigé


static double celsiusVersFahrenheit(double c) {
    return 9.0 / 5.0 * c + 32;
}

static void verifierTemp(double c, double attendu) {
    double obtenu = celsiusVersFahrenheit(c);
    boolean ok = Math.abs(obtenu - attendu) < 1e-9;
    System.out.println((ok ? "OK" : "ÉCHEC") + " : " + c + " °C -> " + obtenu + " °F");
}

OK : 0.0 °C -> 32.0 °F
OK : 100.0 °C -> 212.0 °F
OK : -40.0 °C -> -40.0 °F
OK : 37.0 °C -> 98.60000000000001 °F

Pour  °C, le calcul donne et non : les nombres décimaux sont représentés en binaire, avec une petite erreur d'arrondi. Le test obtenu == attendu échouerait. On compare donc deux double avec une tolérance : obtenu attendu. Attention aussi à 9 / 5 * c : la division entière 9 / 5 vaudrait , d'où l'écriture 9.0 / 5.0.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →