dimanche 17 avril 2005

Les opérations arithmétiques


LES OPÉRATIONS ARITHMÉTIQUES

Telles que la majorité des langages, les opérations restes les mêmes : +, -, *, /. C'est assez standard comme syntaxe. Il y a cependant quelques différences pour certaines. Il est nécessaire de mettre le mot: let pour plusieurs opérations.

Exposant

Nous devons employer : ** si on désire effectuer l'opération x^y. La commande ci-dessous retournera 125.
let "x=5**3"
echo $x

Modulo

Modulo retourne le reste de la division. On obtiendra donc 2 avec la commande suivante.
let "x=125%3"
echo $x

Constante

Il est possible comme plusieurs langages, d'employer une syntaxe raccourcie pour les opérations : +, -, *, /, %. Ces instructions deviennent alors: +=, -=, *=, /=, %=.
JOURS=" Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche"
for jours in `echo $JOURS`
do
  let "x +=100$"
done

Notez qu'on aurait pu changer += par une des autres instructions qu'on a vues plus haut: -=, *=...*

Contrainte

Bash convient parfaitement pour des opérations sans trop de complexité. Bash emploie des entiers 32bits pour les nombres donc il est impossible d'utiliser des nombres en dehors de l'intervalle : 2147483648, 2147483647 sans obtenir un message d'erreur. Si vous avez une version moindrement récente de Bash cette contrainte est enlevée. Les nombres à virgule flottante ne peuvent être employés. BC ou une librairie mathématique externe doit être utilisée.
BC est un langage qui permet de faire de multiples opérations avec les nombres. Il a une syntaxe similaire au C.

x=$(echo "2+1.3" | bc)
echo $x

Dans le code ci-dessus, il y a quelques nouveautés. Le contenu du echo à l'intérieur de la parenthèse est envoyé à bc. L'emploi de |, envoie la sortie d'une commande à une autre. C'est ce qu'on appelle un pipe (tuyau).

Nous avons complété la partie traitant des opérations arithmétiques. Un script avec tous les exemples peut être téléchargé ici