Triangulateur Calculangle math_html Javascript W3 School Conversion
"Il faut copier-coller un exemple dans une autre page du menu pour que les modifications soient mémorisées." "Pour résultats, cliquer dans la boite bleue ou taper Esc" 119.9 + 23.30 + 67 - 12.5 87*67 123*345/18 a = 89.25 b = 193.99 t = .15 s = ( a + b ) * ( 1 + t) // la cout de a+b après taxe de 15% " Garder en mémoire " " et pouvoir visualiser tous les calculs exécutés est très pratique." " On peut alors facilement corriger les simples calculs précédents." " On peut aussi assigner des valeurs à des variables a,b,t,s" " et définir une opération dont on peut changer les données au besoin." " Quelques notions de javascript" // cf https://www.w3schools.com/jsref/jsref_obj_math.asp 6**2 // 6 exposant 2 Math.sqrt(81) // racine carré de 81 Math.cbrt(27) // racine cubique de 27 Math.round( 99.78) // arrondir Math.PI // la valeur de pi Math.E // constante de Euler Math.log10(678) // logarithme base 10 Math.log2(256) // logarithme base 2 Math.log(12) // logarithme népérien Math.sin(7) // sinus de 7 radiants Math.max( 3,44,34.3,22,17) // le maximum "_____________________________________________________________________________" "" " Solution de triangle " " 2 cotés connus A et B ainsi que 1'angle connu d opposé à A" A = 25.3 B = 21.7722 d = 1.5708 //radiant sine = B * Math.sin(d) / A ( sine > 1 )? " impossible":"" "" e1 = Math.asin(sine) f1 = Math.PI - e1 - d C1 = Math.sin(f1) * B / sine ( f1 <= 0 ) ? " impossible" :"" "" e2 = Math.PI - e1 f2 = Math.PI - e2 - d (( f2 <= 0 ) ? " 1 ":"2" )+ " solution" " www.rlefebvre.ca/triangulateur/triangulateur.htm" "====================================" " Solution quadratique" " aX² + bX + C = 0" a = 1 b = 5 c = 6 d = b*b - 4*a*c X1 = ( -b/2/a ) + ( d >= 0 ? Math.sqrt( d ) / 2/a : (" + i ") + Math.sqrt( -d ) / 2/a ) X2 = ( -b/2/a ) + ( d >= 0 ? - Math.sqrt( d ) / 2/a : (" - i ") + Math.sqrt( -d ) / 2/a ) X1 X2 "=======================================" "Système 2 équations à 2 inconnus" " a1 X + b1 Y = c1" " a2 X + b2 Y = c2" a1 = 1 b1 = 2 c1 = 0 a2 = 2 b2 = 6 c2 = 4 d = a1*b2 - a2*b1 (d == 0 ) ? " Impossible * * * * * *":"" Y = ( a1*c2 -a2*c1 ) / d X = ( c1 - b1*Y ) / a1 "_________________________________" "" + a1 + "X + " + b1 +"Y = " + c1 "" + a2 + "X + " + b2 +"Y = " + c2 X Y "===========================================" // Exemple de GOTO b=23 a = 10.7 * b / 2.17 if ( a < 10 ) GOTO( Lx ) a=10 //ligne: Lx ; a RR = Eval_RR // recueille le résultat "___________________________________________" // Exemple de GOTO en boucle Eval_ngotomax= 200 y ="-122,63,22,66,23,59,32,6,41,39,53,17,46,28,-31" v = y.split(",") min = v[ 0 ] * 1; max = min; som = min Eval_ngotomax = 200 // Limite du n total maximal de GOTO // à changer au besoin. i = 1; adi = v.length; ///rr = Eval_RR // rr = résultats avant la boucle //ligne: Lscan ///Eval_RR = "" // Vider les résultats en début de boucle x = v[ i ] * 1 // pour ne pas surcharger la mémoire. if ( max < x ) max = x if ( min > x ) min = x som = som + x i = i + 1; if( i < adi ) GOTO (Lscan) moy = som / adi "_______________________\r" y " n d'éléments = " +adi " maximum = " + max " minimum = " + min " somme = " + som " moyenne = " + moy " Math.max(y) et Math.min(y) aurait pu être utilisé mais l'idée était de démontrer ici l'usage de boucle." Math.max(eval(y)) ///rr += Eval_RR ///Eval_RR ="" ///rr les lignes avec 3 slashs permettent d'éliminer l'écriture des boucles précédentes dans Résultats
Cette application permet de développer rapidement des solutions mathématiques récurrentes en les exprimant en javascript dans la boîte jaune à gauche. Les noms de variables utilisés ne doivent pas être des mots réservés de javascript tels Math., for, if...( En voici la liste) Aussi les mots commençant par Eval_ , ainsi que le mot GOTO sont réservés pour la présente application. Javascript utilise le point décimal et non la virgule décimale. Les résultats sont incrits à mesure dans la boîte bleue. S'il y a erreur, la bordure de la boîte bleue devient rouge et le message d'erreur est affiché au début cette boîte. Un menu de 9 pages de calcul avec un nom modifiable est disponible. L'intérêt principal est de pouvoir réviser et modifier les valeurs des données et obtenir un résultat rapide. Une super recalculatrice, quoi! Tous les calculs récents sont conservés dans des cookies( témoins ), donc disponibles à la réouverture de RECALCU. La page Exemples permet de visualiser quelques types de solutions. On peut y modifier les valeurs mais ces changements ne seront pas retenues dans les cookies. Des sections de la page Exemples peuvent être copiées-collées dans une autre page du menu, modifiées à souhait et retenues dans des cookies. Les variables définies dans une autre page qui a été activée restent définies dans toutes les autres pages. Réactiver la page (F5) permet de n'activer que les valeurs des variables de cette page. Backup ramène dans la boîte blanche ci-bas l'ensemble des pages de calculs. On peut télécharger un fichier de toutes les pages afin de mieux les sauvegarder que seulement dans des cookies. Plus de détails sur Javascript... Voici quelques simples notions du langage javascript La symbolique + et - est la même qu'en mathématique courante L'opérateur de multiplication est * au lieu de x Celui de division est / au lieu de ÷ ** désigne l'exponentiel. 4**3 désigne 4³ Chaque ligne est une opération ou plusieurs séparées par un point virgule ; Les résultats de chaque opération sont inscrits ligne après ligne dans la boîte bleue. Le symbole = sert à assigner une valeur une variable. Le nom d'une variable commence par une lettre suivie ou non de lettres ou de chiffres. Surveiller la casse. Par exemple : pif3 = 88 , est une opération indiquée sur une ligne où pif3 prend la valeur 88 Alors pif3 peut être réassigné comme : pif3 = pif3 / 11 Cependant de nombreux noms ne peuvent pas être réassignés car ils sont déjà réservés par le javascript lui-même; comme if, else, Math.Pi, let, var, new, Date, alert, length..... Cette application se réserve les mots commençant par Eval_ ainsi que le mot GOTO. 2 slash de suite, ie // , indique une remarque pour noter une clarification, ie non opérationel. Les symboles [ ] et { } sont copiables en cliquant les boutons au dessus de la boite jaune. La fonction GOTO( nom de ligne) permet de sauter à une ligne, qui est nommée en écrivant //ligne: nom de ligne au tout début de cette ligne. Par exemple GOTO( Lx ) sautera à la ligne qui commence par //ligne: Lx cf à la fin de la page Exemples Si un GOTO réfère à une ligne précédent ce GOTO, il faut maitriser la boucle qui est alors produite. Il faut alors contrôler une sortie de boucle avec un if sur la ligne d'un GOTO. On peut modifier le nombre maximum de ces retours en l'écrivant dans la boite rose en haut, à droite. Eval_ngotomax = le nombre maximum de cycles de boucles exécutables par GOTO. Normalement < 100. Ceci permet de limiter et arrêter une boucle incontrolée et interminable et susceptible de perdre le contrôle de l'application. 'RR = Eval_RR' recueille le texte des résultats inscrits dans la boîte bleue pendant son exécution. On peut alors réinsérer ce texte en écrivant Eval_RR = RR. Ceci permet d'éliminer au besoin la redondance d'une boucle. De plus, le long texte de résultats, dans la boîte bleue, généré par une longue boucle peut devenir prohibitif pour la mémoire de l'application. Eval_maxtrop = 1000000 caractères maximum dans la boîte bleue. Voici une bonne référence pour le javascript: W3schools
Voici quelques simples notions du langage javascript La symbolique + et - est la même qu'en mathématique courante L'opérateur de multiplication est * au lieu de x Celui de division est / au lieu de ÷ ** désigne l'exponentiel. 4**3 désigne 4³ Chaque ligne est une opération ou plusieurs séparées par un point virgule ; Les résultats de chaque opération sont inscrits ligne après ligne dans la boîte bleue. Le symbole = sert à assigner une valeur une variable. Le nom d'une variable commence par une lettre suivie ou non de lettres ou de chiffres. Surveiller la casse. Par exemple : pif3 = 88 , est une opération indiquée sur une ligne où pif3 prend la valeur 88 Alors pif3 peut être réassigné comme : pif3 = pif3 / 11 Cependant de nombreux noms ne peuvent pas être réassignés car ils sont déjà réservés par le javascript lui-même; comme if, else, Math.Pi, let, var, new, Date, alert, length..... Cette application se réserve les mots commençant par Eval_ ainsi que le mot GOTO. 2 slash de suite, ie // , indique une remarque pour noter une clarification, ie non opérationel. Les symboles [ ] et { } sont copiables en cliquant les boutons au dessus de la boite jaune. La fonction GOTO( nom de ligne) permet de sauter à une ligne, qui est nommée en écrivant //ligne: nom de ligne au tout début de cette ligne. Par exemple GOTO( Lx ) sautera à la ligne qui commence par //ligne: Lx cf à la fin de la page Exemples Si un GOTO réfère à une ligne précédent ce GOTO, il faut maitriser la boucle qui est alors produite. Il faut alors contrôler une sortie de boucle avec un if sur la ligne d'un GOTO. On peut modifier le nombre maximum de ces retours en l'écrivant dans la boite rose en haut, à droite. Eval_ngotomax = le nombre maximum de cycles de boucles exécutables par GOTO. Normalement < 100. Ceci permet de limiter et arrêter une boucle incontrolée et interminable et susceptible de perdre le contrôle de l'application. 'RR = Eval_RR' recueille le texte des résultats inscrits dans la boîte bleue pendant son exécution. On peut alors réinsérer ce texte en écrivant Eval_RR = RR. Ceci permet d'éliminer au besoin la redondance d'une boucle. De plus, le long texte de résultats, dans la boîte bleue, généré par une longue boucle peut devenir prohibitif pour la mémoire de l'application. Eval_maxtrop = 1000000 caractères maximum dans la boîte bleue. Voici une bonne référence pour le javascript: W3schools