Premiers pas en JavaScript
34.2 objets mathematiques
méthodes
cuy copyleft
  See You Why?  

 


objet Math et propriétés (34.1) | | exercices relatifs à l'objet Math (34.8)

Contenu

 

 

I. Les objets mathématiques et propriétés (constantes)

voir < < < Section précédente

 

II. Les méthodes de l'objet Math

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

<html>
<head><title>objet math et methodes</title></head>
<body>
<script type="text/javascript">

   var chaine1 = "198.578";
   var entier1 = parseInt(chaine1);
   var reel1 = parseFloat(chaine1);

   document.write("La chaine de d&eacute;part est : "+chaine1+"<br>");
   document.write("transformée en entier est devenue : "+entier1+"<br>");
   document.write("et en réel devient : "+reel1+"<br>");
   document.write("dont la partie entiere du réel est : "+ Math.floor(reel1)+"<br>");
   document.write("et dont la racine carrée du réel arrondi est : "+ Math.sqrt(Math.floor(reel1))+"<br>");
   document.write("La valeur booléenne de \"<i>l'entier converti est NaN</i>\" est : <b>"+ isNaN(entier1)+"</b>.<br><br>");

   chaine2 = "f978d15";
   entier2 = parseInt(chaine2);

   document.write("La chaine de d&eacute;part est : "+chaine2+"<br>");
   document.write("La valeur booléenne de \"<i>l'entier converti est NaN</i>\" est : <b>"+ isNaN(entier2)+"</b>.");
</script>
</body>
</html>


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"

 

 

 

VIII. Exercices relatifs à l'objet Math

voir suite >>>

 

 

IX. Test relatif à l'objet Math

voir suite >>>

 


objet Math et propriétés (34.1) | | exercices relatifs à l'objet Math (34.8)