A 16 - Mathématiques 1 : calcul et hasard
Calculs usuels
Les opérations usuelles (+, -, *, /) sont utilisables dans Processing. Il faut néanmoins tenir compte du type des variables, notamment pour les divisions d'entiers. La division entre deux entiers donne comme résultat le quotient entier (au sens d'une division euclidienne).
Par exemple, en définissant les variables heures
et minutes
par :
int minutes = 117;
int heures = minutes/60;
on obtiendra un résultat différent de ce que donnerait une calculatrice habituelle. heures
vaut ici l'entier 1, quotient entier de la division de 117 par 60.
Alors qu'en définissant les variables heures
et minutes
par :
float minutes = 117;
float heures = minutes/60;
on obtiendra pour heures
la valeur décimale 1.95.
On peut accéder au reste de la division entière (euclidienne) par le symbole % :
int minutes = 117;
int reste = minutes % 60;
Cette affectation donne à reste
la valeur 57, qui est le reste dans la division euclidienne de 117 par 60.
Conversion
On peut convertir un entier en décimal (et inversement) :
-
Convertir un entier en décimal ne pose aucun problème : on utilise la fonction
float()
int entier = 5;
float decimal = float(entier);
println(entier + " est converti en "+ decimal);
// affiche : 5 est converti en 5.0 -
Convertir un décimal en entier est un peu plus problématique, dans la mesure où certains décimaux ne sont égaux à aucun entier. On utilise la fonction
int()
qui donne la partie entière de l'argument :float decimal = 5.7;
int entier= int(decimal);
println( decimal+ " est converti en "+ entier);
// affiche : 5.7 est converti en 5
Nombres aléatoires
La fonction random()
permet d'affecter à une variable de type float
une valeur aléatoire. On peut préciser un ou deux paramètres :
- Avec un seul paramètre, par exemple
random(25);
le résultat renvoyé sera un décimal entre 0 (compris) et 25 (non compris). - Avec deux paramètres, par exemple
random(-5, 5);
le résultat renvoyé sera un décimal entre -5 (compris) et 5 (non compris).
Pour simuler le lancer d'un dé à 6 faces, on pourra ainsi utiliser : int lancer = int(random(1,7));
, où l'on convertit en entier de 1 à 6 un décimal aléatoire de l'intervalle [1 ; 7[.
Fonctions mathématiques usuelles
Voici la syntaxe dans Processing de quelques fonctions mathématiques usuelles : x est une variable numérique, entière ou décimale.
-
pow(x,n)
: calcule x à la puissance n, le résultat est un décimal. Exemple :float nb = pow(2,3);
affecte ànb
la valeur 23= 8. -
sqrt(x)
: calcule la racine carrée de x, le résultat est un décimal. -
abs(x)
: calcule la valeur absolue de x, le résultat est un entier ou un décimal, suivant le type de x. -
sin(x)
: calcule le sinus de x (en radians), le résultat est un décimal. -
cos(x)
: calcule le cosinus de x (en radians), le résultat est un décimal. -
exp(x)
: calcule l'image de x par la fonction exponentielle, le résultat est un décimal. -
floor(x)
: calcule la partie entière de x, le résultat est un entier. -
ceil(x)
: calcule le plus petit entier supérieur ou égal à x, le résultat est un entier. -
round(x)
: calcule l'entier le plus proche de x, le résultat est un entier(!).