I. Calcul Python
Notre but est de calculez le plafond nuageux avec javascript mais pour mieux le comprendre on commence en python , mais d’abord on va comprendre la base d’un nuage « https://fr.wikipedia.org/wiki/Base_d%27un_nuage » et le Point de Rosée « https://fr.wikipedia.org/wiki/Point_de_ros%C3%A9e » .
Nous allons commencer par coder la méthode de calcul en python.
Puis écrire le script d’une fonction que nous allons améliorer progressivement
- affichage des types
- documentation
- assertion
On calcule la température de rosée qui est la température à partir de laquelle apparait la première goutte de liquide. Cette température permet de calculer la hauteur du plafond nuageux.
import math a=17.27 b=237.7 temperature=float(input("Température en °C : ")) humiditeRelative=float(input("Thumidité en% entre 0 et 100 : ")) alpha=((a*temperature)/(b+temperature) +math.log(humiditeRelative/ 100)) tpreRosee = (b* alpha) / (a-alpha) plafondNuage = 125 * (temperature -tpreRosee) print("température de rosée = ",tpreRosee,"°C") print("plafond Nuageux = ",plafondNuage,"m")
Amélioration du calcul avec une fonction , assertion : on demande au programme de tester des pré-conditions avant d’exécuter la fonction. lorsque la condition n’est pas vérifiée une erreur est déclenchée avec un message. On documente la fonction . On précise aussi les types des arguments de la fonction et de la donnée retournée .
import math a=17.27 b=237.7 def plafondNuageux(tpre:float,tH:float)->tuple: """ La temperature doit être en °C et tH. l'humidité relative est comprise entre 0 et 100 la fonction renvoi un tuple contenant la temperature de rosée puis le plafond nuageux. """ assert tH>0 and tH<=100, 'th doit être >0 et <=100' assert type(tpre)==float or type(tpre)==int, ' la temperature est un entier ou un décimal' assert type(tH)==float or type (tH)==int , " le taux d'humidité est un entier ou un décimal" alpha=((a*tpre)/(b+tpre) +math.log(tH / 100)) t_rosee = (b* alpha) / (a-alpha) plafondNuage = 125 * (tpre -t_rosee) return t_rosee,plafondNuage tpreRosee,plafondNuage=plafondNuageux(0,1) print("température de rosée = ",tpreRosee,"°C") print("plafond Nuageux = ",plafondNuage,"m")
II. Transformer le tout en javascript
Maintenant , on doit le mettre dans une page web , sous forme de javascript dans une page html :
Le Javascript n’est pas comme Pyhton on doit désigné une variable a chaque début , « parsefloat » pour le décoder comme un nombre a virgule sinon pour le nombre 12 , il prendra en compte juste 1 et 2 .
Les valeurs a et b et les formules on les retouvera sur le wiki pareil pour les unités , on passera aussi par la librairie math pour faire certains calculs , et on définiras l’unité des chaque nombres rentrés au préalable .
On regarde les conditions ici on doit marqué un nombré sinon cela nous afficheras erreur pareil , pour le taux d’humidité et la température , cela évité de marqué n’importe quoi et cela affichera une erreur a l’utilisateur , pour la réponse final on va concaténer les mots ou phrase avec + et on va fixera le nombre de virgule après le 0
<html lang="fr"> <head> <title>Nuages</title> <meta charset="UTF-8" /> <link rel=" stylesheet" href="nuages.css" /> </head> <script> function affiche() { var temperature =parseFloat(prompt('température en°C?')); var humiditeR =parseFloat(prompt('humidité relative en %?')); var a = 17.27; var b = 237.7; var meteo="" var alpha = a * temperature / (b + temperature) + Math.log(humiditeR * 0.01); var pointRosee = b * alpha / (a - alpha); var plafondNuage = 125 * (temperature - pointRosee) var plafondNuageFt =400*(temperature - pointRosee) if(isNaN(plafondNuage)||humiditeR>100||humiditeR<0||isNaN(humiditeR)){meteo="erreur"} else{ meteo = "Le point de rosée est égal à " + pointRosee.toFixed(0) + "°C " +"et la base des nuages est à " + plafondNuage.toFixed(0) + "m ."; meteo = meteo + "<br><b>soit " + plafondNuageFt.toFixed(0) + " ft .</b>"; } document.getElementById("test").innerHTML = "<b>" + meteo + "</b>"; } </script> <body> <h2>Hauteur du plafond nuageux</h2><br> <button class="button" onclick="affiche()">Calculateur</button><br><br> <h4 id="test"></h4> </body> </html>
Enfin lorsque l’on clic sur le bouton , cela va éxecuter la fonction « affiche() » .
Aucune réponse