34.2 objets mathematiques méthodes |
See You Why? |
Les méthodes applicables à l'objet Math sont nombreuses : certaines à orientation trigonométrique, d'autres plutôt statistiques ; certaines sans arguments (ou paramètres) d'autres à un ou plusieurs arguments. N'oublions pas que l'objet Math doit figurer devant le nom de la méthode et séparé par un point.
Nous pensons que le lecteur fera lui-même le tri et donnons ici la liste des méthodes par ordre alphabétique :
méthode Math. suivi de : |
description | exemple |
abs(x) | pour obtenir la valeur absolue de x | Math.abs(-1357) retourne 1357 |
acos(x) | pour obtenir l'arc qui a comme cosinus x, compris entre -1 et 1 (réponse exprimée en radians) | Math.acos(-0.1357) retourne |
asin(x) | pour obtenir l'arc qui a comme sinus x, compris entre -1 et 1 (réponse exprimée en radians) | Math.asin(-0.1357) retourne |
atan(x) | pour obtenir l'arc qui a comme tangente x (réponse exprimée en radians) | Math.atan(-1.357) retourne |
atan2(y, x) |
pour obtenir l'angle (en radians) de l'axe des X à un point (x,y). la valeur en radians (comprise entre 0 et 2pi) representant l'angle dont la tangente est : x/y. Sens anti-horloger. |
Math.atan2(-1.357) retourne |
ceil(x) | pour obtenir le plus petit entier supérieur ou égal à x (arrondi supérieur) | Math.ceil(1.357) retourne 2 |
cos(x) | pour obtenir le cosinus de x, exprimé en radians (réponse entre -1 et 1) | Math.cos(-1.357) retourne |
exp(x) |
pour obtenir l'exponentielle de x, soit ex | Math.exp(2) retourne |
floor(x) | pour obtenir le plus grand entier inférieur ou égal à x (arrondi inférieur) | Math.floor(13.57) retourne 13 |
log(x) |
pour obtenir le logarithme népérien de x, soit ln x, et pas le logarithme décimal de x (attention danger écriture) | Math.log(10) retourne et pas 1 |
max(a, b[,...]) | pour obtenir la plus grande valeur des arguments passés | Math.max(-13,57,12,33) retourne 57 |
min(a, b[,...]) | pour obtenir la plus petite valeur des arguments passés | Math.min(-13,57,12,33) retourne -13 |
pow(x, y) | pour obtenir x à la puissance y, soit xy | Math.pow(2,7) retourne 128 |
random() | pour obtenir un nombre aléatoire entre 0 et 1 | Math.random() retourne par exemple 0.461357 |
round(x) | pour obtenir l'entier le plus proche, .5 à .999... sont arrondis à l'unité supérieure (arrondi) | Math.round(-13.57) retourne -14 |
sin(x) |
pour obtenir le sinus de x, exprimé en radians (réponse entre -1 et 1) | Math.sin(-1.357) retourne |
sqrt(x) |
pour obtenir la racine carrée de x | Math.sqrt(13.57) retourne |
tan(x) |
pour obtenir la tangente de x, exprimé en radians (réponse entre -∞ et +∞) | Math.tan(-1357) retourne |
pour obtenir | Math.abs(-1357) retourne 1357 |
|
pour obtenir | Math.abs(-1357) retourne 1357 |
Les tutoriels rencontrés précisent que la fonction random() génère des valeurs réelles aléatoires comprises entre 0 et 1... cependant, je n'en ai rencontré aucun qui prouve que les limites 0 et 1 puissent être égalées.
Pas très important, me direz-vous. On n'utilise que des entiers, donc on arrondira.
Et c'est là que le bât blesse. Imaginez-vous générer un jeu de 52 cartes... facile, prétenderez-vous. Il suffit de multiplier le nombre réel aléatoire par 52 et on aura une valeur aléatoire réelle comprise entre 0 et 52... sauf que ce sont toujours des réels aléatoires. [Pour les moins initiés, réel veut dire nombre décimal non périodique, en clair, des valeurs telles que 0.4326498754... ou 0.19283746162738...]
Il suffit d'arrondir à l'unité inférieure et on aura une valeur aléatoire entière comprise entre 0 et 52... sauf que 52 n'a aucune chance d'apparaitre si 1 ne fait pas partie du lot de réels susceptibles d'être tirés au hasard. Et, de plus, 52 n'a quasi aucune chance d'apparaitre si 1 fait partie du lot de réels susceptibles d'être tirés au hasard. Il serait donc plus sage d'imaginer que la formule imaginée soit un tirage aléatoire de 0 à 51... ce qui fait 52 valeurs différentes.
Ceci explique la multitude de formules basées sur la fonction ou méthode random() que l'on trouve sur le net pour générer un nombre au hasard compris entre deux valeurs. Nous développerons dans la séquence suivante, comme annoncé lors de la séquence 16.5 où nous avons traité d'une fonction non portable qui générait un nombre entier aléatoire entre 50 et 1000 une fonction plus portable qui acceptera les valeurs minimales et maximales à choisir, en paramètres.
Un exemple d'utilisation des méthodes applicables à l'objet Math ? Voyez ci-après.
Exemple
|
Nous invitons ici le lecteur à (re)prendre connaissance de fonctions ou méthodes déjà recontrées et qui transforme ou extrait une valeur numérique d'une chaine de caractères... en voilà quelques exemples :
chaine | parseFloat(chaine); | parseInt(chaine); | eval(chaine); | 1.0*chaine; |
---|---|---|---|---|
"135.68" | ||||
"135,68" | ||||
"12.3E-6" | ||||
"SeeYouWhy" | ||||
"24.568SeeYouWhy38" | ||||
"SeeYouWhy38.24" | ||||
"AF8BEF" | ||||
"0284" | ||||
"0xAB882F" | ||||
"12.1*6" | ||||
"cos(3.1)" | ||||
"Math.cos(3.1-2)" | ||||
"2.1^3" |
voir suite >>>
voir suite >>>