03_Variables - HellperKK/Stoicos GitHub Wiki

Qu'est-ce ce qu'une variable ?

Une variable est souvent comparée à une boite contenant une valeur. En ce sens, elle remplit alors trois rôles :

  • Donner un nom à une valeur ce qui rend plus compréhensible son utilisation
  • Suivre les variations de la valeur contenue
  • Travailler avec des valeurs qu'on ne connait pas précisément

Par exemple dans le code

println "Bonjour le monde"

la valeur affichée sera toujours la même. Elle est donc constante. On pourrait cependant imaginer un autre programme demandant à l'utilisateur de rentrer un nom puis saluant le même nom. Le programme se ferait comme ceci

= :nom (input "Quel est votre nom ? ")
println "Bonjour" nom

Dans la première ligne, on réutilise la fonction input pour demander une entrée à l'utilisateur. Le résultat est ensuite assigné à la valeur nom par le biais de la fonction =. Dans la seconde, on utilise la fonction println pour affiche Bonjour suivit du nom qu'on a récupéré précédemment.

On notera une différence au niveau de la variable puisqu'on utilise d'abord :nom puis nom. C'est dû au fait que le premier fait référence à la variable nom par le biais d'un symbole, tandis que le second fait référence au contenu de la variable nom.

Un autre exemple, si on souhaite effectuer pas mal de calculs utilisant une valeur commune, par exemple des calculs trigonométriques utilisant pi. On pourrait très bien se contenter d'utiliser 3.14 dès que nécéssaire et faire

= :perimetre (*. 2 10 3.14)

cependant si on désire modifier à un moment cette valeur, par exemple pour en changer la précision, il faudra modifier toutes les occurences de 3.14 dans le code, ce qui peut être long et fastidieux. En faisant plutôt

= :pi 3.14
= :rayon 10
= :perimetre (*. 2 rayon pi)

On peut alors modifier directement la variable pi pour affecter tout calcul y faisant référence. De plus l'utilisation d'un nom dans le calcul permet de lui donner plus de sens, en particulier si la valeur en question est arbitraire comme pour la variable rayon.