TP2
NFP 121 - TP2
Conversion Fahrenheit - Celsius
Question 1 : canversion Fahrenheit - Celsius
Après avoir compléter les 2 méthodes de la classe, j'obtient le résultat demandé.
la méthode float fahrenheitEnCelsius(int f) :
/** * la méthode de conversion. * * @param f * la valeur en degré Fahrenheit * @return la conversion en degré Celsius */ public static float fahrenheitEnCelsius(int f) { float e = (float)5/9*(f-32); return e; }
/** * Application convertissant un Fahrenheit en Celsius. * * * @param args * ... */ public static void main(String[] args) { // pour tous les paramètres de la ligne de commande int fahrenheit = 0; float celsius = 0; for(int i = 0; i<args.length; i++){ fahrenheit = java.lang.Integer.parseInt(args[i]); celsius = fahrenheitEnCelsius(fahrenheit); System.out.println(fahrenheit + "\u00B0F -> " +((int)(celsius*10)/10.0) + "\u00B0C"); // ligne, } // format // imposés }
Question 1.1 : classe de test
j'ai agrémenté la classe de test avec d'autres assertions :
La méthode test_fahrenheitEnCelsius :
/**Fonction de test. * Teste différentes valeurs afin de vérifier si la conversion fonctionne. */ public void test_fahrenheitEnCelsius() { assertEquals(" 0 °F -> -17.7 °C ? ", -17.7, question1.FahrenheitCelsius.fahrenheitEnCelsius(0), 0.1); assertEquals(" 100 °F -> 37.7 °C ? ", 37.7, question1.FahrenheitCelsius.fahrenheitEnCelsius(100), 0.1); assertEquals(" 2000 °F -> 1093.3 °C ?", 1093.3, question1.FahrenheitCelsius.fahrenheitEnCelsius(2000), 0.1); assertEquals(" 54 °F -> 12.2 °C ?", 12.2, question1.FahrenheitCelsius.fahrenheitEnCelsius(54), 0.1); assertEquals(" 37 °F -> 2.7 °C ?", 2.7, question1.FahrenheitCelsius.fahrenheitEnCelsius(37), 0.1); assertEquals(" 500 °F -> 260.0°C ?", 260.0, question1.FahrenheitCelsius.fahrenheitEnCelsius(500), 0.1); assertEquals(" 356 °F -> 180.0 °C ?", 180.0, question1.FahrenheitCelsius.fahrenheitEnCelsius(356), 0.1); assertTrue("0°F < 100°F",question1.FahrenheitCelsius.fahrenheitEnCelsius(0)< question1.FahrenheitCelsius.fahrenheitEnCelsius(100)); }
Question 2 : Exception "runtime"
En reprenant la conversion de la question 1, j'ai ajouté la gestion de l'exception "NumberFormatException".
De plus , en rajoutant le try catch dans la boucle for, cela nous permet, comme vue en ED de laisser passer l'exception,
tout en continuant le traitement de conversion des nombres qui suivent l'erreur passée en paramètre.
public static void main(String[] args){ int fahrenheit = 0; float celsius = 0; for(int i = 0; i<args.length; i++){ try{ fahrenheit = java.lang.Integer.parseInt(args[i]); celsius = fahrenheitEnCelsius(fahrenheit); System.out.println(fahrenheit + "\u00B0F -> " +((int)(celsius*10)/10.0) + "\u00B0C"); }catch(NumberFormatException nfe){ System.out.println("error : " + nfe.getMessage()); } } }
La méthode FahrenheitCelsiusTest :
Voilà le rajout pour tester NumberFormatException :
/**Test fahrenheitEnCelsius. * * plusieurs tests de bon fonctionnement. */ public void test_fahrenheitEnCelsius() { assertEquals(" 0 °F -> -17.7 °C ? ", -17.7, question1.FahrenheitCelsius.fahrenheitEnCelsius(0), 0.1); assertEquals(" 100 °F -> 37.7 °C ? ", 37.7, question1.FahrenheitCelsius.fahrenheitEnCelsius(100), 0.1); assertEquals(" 2000 °F -> 1093.3 °C ?", 1093.3, question1.FahrenheitCelsius.fahrenheitEnCelsius(2000), 0.1); assertEquals(" 54 °F -> 12.2 °C ?", 12.2, question1.FahrenheitCelsius.fahrenheitEnCelsius(54), 0.1); assertEquals(" 37 °F -> 2.7 °C ?", 2.7, question1.FahrenheitCelsius.fahrenheitEnCelsius(37), 0.1); assertEquals(" 500 °F -> 260.0°C ?", 260.0, question1.FahrenheitCelsius.fahrenheitEnCelsius(500), 0.1); assertEquals(" 356 °F -> 180.0 °C ?", 180.0, question1.FahrenheitCelsius.fahrenheitEnCelsius(356), 0.1); assertTrue("0°F < 100°F",question1.FahrenheitCelsius.fahrenheitEnCelsius(0)< question1.FahrenheitCelsius.fahrenheitEnCelsius(100)); }
Question 3 :
L'applette complétée
Applette complétée en reprenant ce qui a été fait précédemment.
Voici par exemple une photo avec l'applette dont les paramètres background ont changé ainsi que le résultat donné dans l'énoncé

Cette applette prend aussi en compte le zéro absolu.
Conclusion, biliographie et remarques :
Petites frayeurs lors des tests sur Jnews, notamment sur la question 2 où j'avais mis 2 System.out.printlnce qui provoquait une erreur lors du submit. Sinon dans l'ensemble cela c'est plutôt bien passé.
De plus j'ai essayé de faire un effort sur la mise en page du rapport.
Commentaires
-
- 1. wqras Le 25/03/2021
-
- 2. fwsa Le 29/01/2021
-
- 3. fsaw Le 22/12/2020
-
- 4. billige nike schuhe Le 06/11/2020
Billige Nike Laufschuhe, lassen Sie sich bequem trainieren, Sie verdienen nike air max günstig es, was warten Sie?Nike Laufschuhe, cool super praktisch! Airbags in our balloons, it is because of your feet without gas. Nike air max shoes nike air max 95 günstig to say the most important is the shoes. Nike shoes online sales
Ajouter un commentaire