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(!).