{"id":130,"date":"2022-01-03T17:57:26","date_gmt":"2022-01-03T16:57:26","guid":{"rendered":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/?p=130"},"modified":"2022-01-04T11:40:47","modified_gmt":"2022-01-04T10:40:47","slug":"calculer-la-hauteur-du-plafond-nuageux","status":"publish","type":"post","link":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/2022\/01\/03\/calculer-la-hauteur-du-plafond-nuageux\/","title":{"rendered":"Calculer la hauteur du plafond nuageux"},"content":{"rendered":"\n<h2>I. Calcul Python<\/h2>\n\n\n\n<p>Notre but est de calculez le plafond nuageux avec javascript mais pour mieux le comprendre on commence en python , mais d&rsquo;abord on va comprendre la base d&rsquo;un nuage \u00ab\u00a0https:\/\/fr.wikipedia.org\/wiki\/Base_d%27un_nuage\u00a0\u00bb et le Point de Ros\u00e9e \u00ab\u00a0https:\/\/fr.wikipedia.org\/wiki\/Point_de_ros%C3%A9e\u00a0\u00bb .<\/p>\n\n\n\n<p>Nous allons commencer par coder la m\u00e9thode de calcul en python.<\/p>\n\n\n\n<p>Puis \u00e9crire le script d\u2019une fonction que nous allons am\u00e9liorer progressivement<\/p>\n\n\n\n<ul><li>affichage des types<\/li><li>documentation<\/li><li>assertion<\/li><\/ul>\n\n\n\n<p>On calcule la temp\u00e9rature de ros\u00e9e qui est la temp\u00e9rature \u00e0 partir de laquelle apparait la premi\u00e8re goutte de liquide. Cette temp\u00e9rature permet de calculer la hauteur du plafond nuageux.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import math\n\na=17.27\nb=237.7\n\ntemperature=float(input(\"Temp\u00e9rature en \u00b0C  :  \"))\nhumiditeRelative=float(input(\"Thumidit\u00e9 en%  entre 0 et 100  : \"))\n\nalpha=((a*temperature)\/(b+temperature) +math.log(humiditeRelative\/ 100))\ntpreRosee = (b* alpha) \/ (a-alpha)\nplafondNuage = 125 * (temperature -tpreRosee)\n\nprint(\"temp\u00e9rature de ros\u00e9e = \",tpreRosee,\"\u00b0C\")\nprint(\"plafond Nuageux  = \",plafondNuage,\"m\")<\/pre>\n\n\n\n<p>Am\u00e9lioration du calcul avec une fonction , assertion : on demande au programme de tester des pr\u00e9-conditions avant d&rsquo;ex\u00e9cuter la fonction. lorsque la condition n&rsquo;est pas v\u00e9rifi\u00e9e une erreur est d\u00e9clench\u00e9e avec un message. On documente la fonction . On<strong> <\/strong>pr\u00e9cise aussi les types des arguments de la fonction et de la donn\u00e9e retourn\u00e9e .<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import math\n\na=17.27\nb=237.7\n\ndef plafondNuageux(tpre:float,tH:float)-&gt;tuple:\n  \"\"\"\n  La temperature doit \u00eatre en \u00b0C et tH. l'humidit\u00e9 relative est comprise entre 0 et 100\n  la fonction renvoi un tuple contenant la temperature de ros\u00e9e puis le plafond nuageux.\n  \"\"\"\n  assert tH&gt;0 and tH&lt;=100, 'th doit \u00eatre &gt;0 et &lt;=100'\n  assert type(tpre)==float or type(tpre)==int, ' la temperature est un entier ou un d\u00e9cimal'\n  assert type(tH)==float or type (tH)==int , \" le taux d'humidit\u00e9 est un entier ou un d\u00e9cimal\"\n\n  alpha=((a*tpre)\/(b+tpre) +math.log(tH \/ 100))\n  t_rosee = (b* alpha) \/ (a-alpha)\n  plafondNuage = 125 * (tpre -t_rosee)\n  return t_rosee,plafondNuage\n\ntpreRosee,plafondNuage=plafondNuageux(0,1)\n\nprint(\"temp\u00e9rature de ros\u00e9e = \",tpreRosee,\"\u00b0C\")\nprint(\"plafond Nuageux  = \",plafondNuage,\"m\")\n<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2>II. Transformer le tout en javascript <\/h2>\n\n\n\n<p>Maintenant , on doit le mettre dans une page web , sous forme de javascript dans une page html : <\/p>\n\n\n\n<p>Le Javascript n&rsquo;est pas comme Pyhton on doit d\u00e9sign\u00e9 une variable a chaque d\u00e9but ,  \u00ab\u00a0parsefloat\u00a0\u00bb pour le d\u00e9coder comme un nombre a virgule sinon pour le nombre 12 , il prendra en compte juste 1 et 2 .<\/p>\n\n\n\n<p>Les valeurs a et b et les formules on les retouvera sur le wiki pareil pour les unit\u00e9s  , on passera aussi par la librairie math pour faire certains calculs , et on d\u00e9finiras l&rsquo;unit\u00e9 des chaque nombres rentr\u00e9s au pr\u00e9alable . <\/p>\n\n\n\n<p>On regarde les conditions ici on doit marqu\u00e9 un nombr\u00e9 sinon cela nous afficheras erreur pareil , pour le taux d&rsquo;humidit\u00e9 et la temp\u00e9rature , cela \u00e9vit\u00e9 de marqu\u00e9 n&rsquo;importe quoi et cela affichera une erreur a l&rsquo;utilisateur , pour la   r\u00e9ponse final on va concat\u00e9ner les mots ou phrase avec + et on va fixera le nombre de virgule apr\u00e8s le 0 <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;html lang=\"fr\"&gt;\n&lt;head&gt;\n    &lt;title&gt;Nuages&lt;\/title&gt;\n    &lt;meta charset=\"UTF-8\" \/&gt;\n    &lt;link rel=\" stylesheet\" href=\"nuages.css\" \/&gt;\n&lt;\/head&gt;\n&lt;script&gt;\n    function affiche() {\n        var temperature =parseFloat(prompt('temp\u00e9rature en\u00b0C?'));\n        var humiditeR =parseFloat(prompt('humidit\u00e9 relative en %?'));\n        var a = 17.27;\n        var b = 237.7;\n        var meteo=\"\"\n        var alpha = a * temperature \/ (b + temperature) + Math.log(humiditeR * 0.01);\n        var pointRosee = b * alpha \/ (a - alpha);\n        var plafondNuage = 125 * (temperature - pointRosee)\n        var plafondNuageFt =400*(temperature - pointRosee)\n        if(isNaN(plafondNuage)||humiditeR&gt;100||humiditeR&lt;0||isNaN(humiditeR)){meteo=\"erreur\"}\n        else{\n        meteo = \"Le point de ros\u00e9e est \u00e9gal \u00e0 \" + pointRosee.toFixed(0) + \"\u00b0C \" +\"et la base des nuages est \u00e0 \" + plafondNuage.toFixed(0) + \"m .\";\n        meteo = meteo + \"&lt;br&gt;&lt;b&gt;soit \" + plafondNuageFt.toFixed(0) + \" ft .&lt;\/b&gt;\";\n        }\n        document.getElementById(\"test\").innerHTML = \"&lt;b&gt;\" + meteo + \"&lt;\/b&gt;\";\n           }\n&lt;\/script&gt;\n&lt;body&gt;\n    &lt;h2&gt;Hauteur du plafond nuageux&lt;\/h2&gt;&lt;br&gt;\n    &lt;button class=\"button\" onclick=\"affiche()\"&gt;Calculateur&lt;\/button&gt;&lt;br&gt;&lt;br&gt;\n    &lt;h4 id=\"test\"&gt;&lt;\/h4&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n\n\n\n<p>Enfin lorsque l&rsquo;on clic sur le bouton , cela va \u00e9xecuter la fonction \u00ab\u00a0affiche()\u00a0\u00bb .<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I. Calcul Python Notre but est de calculez le plafond nuageux avec javascript mais pour mieux le comprendre on commence en python , mais d&rsquo;abord on va comprendre la base d&rsquo;un nuage \u00ab\u00a0https:\/\/fr.wikipedia.org\/wiki\/Base_d%27un_nuage\u00a0\u00bb et le Point de Ros\u00e9e \u00ab\u00a0https:\/\/fr.wikipedia.org\/wiki\/Point_de_ros%C3%A9e\u00a0\u00bb . Nous allons commencer par coder la m\u00e9thode de calcul en python. Puis \u00e9crire le script [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts\/130"}],"collection":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":12,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":148,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/posts\/130\/revisions\/148"}],"wp:attachment":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/media?parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/categories?post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/zakaria\/wp-json\/wp\/v2\/tags?post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}