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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
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.