Calculer la hauteur du plafond nuageux

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *