Manuel Amos Professional  Sommaire  Index

Interface AMOS


Pour effectuer des calculs plus complexes, une petite comprehension theorique est necessaire. A chaque fois qu une valeur est saisie dans une expression, elle est placee en haut d une liste de nombres appelee pile (stack). Supposons qu une pile soit representee comme ceci :

3
2
1
0

La pile grandit de bas en haut, donc 3 est au sommet et 0 est tout en bas. Des qu une expression rencontre un nombre ou une chaine, celui-ci est pousse directement en haut de la pile. Mais les operateurs sont traites differemment : lorsqu un operateur ou une fonction est detecte, l interface l execute immediatement en prenant les valeurs requises dans la pile. Apres calcul, le resultat est remis dans la pile au sommet. Ce processus se poursuit jusqu a la fin de l expression.

Voici un exemple theorique de calcul. Il montre comment le resultat 21 est obtenu a partir de l expression 23+4*1+ :

23+4*1+  = 5 4*1+
5 4*1+   = 20 1+
20 1+    = 21

Cette expression est evaluee strictement de gauche a droite. Les nombres 2 et 3 sont mis dans la pile, puis ajoutes par l operateur +, donnant 5. Ensuite le 4 est empile, puis multiplie par l element du dessous (5), donnant 20. Enfin, le 1 est ajoute a 20, donnant 21.

Il est important de comprendre que la pile est temporaire et n a aucune existence permanente. Cela signifie qu une fois le calcul termine, exactement une valeur doit rester dans la pile, sinon une erreur de syntaxe sera generee.

Voici une table des operateurs arithmetiques disponibles :

Operateur Exemple     Resultat   Explication
+        12+          3          additionne deux valeurs
-        23-         -1          soustrait la deuxieme valeur a celle en dessous dans la pile
*        23*          6          multiplie les deux valeurs du haut de la pile
/        62/          3          divise la valeur du bas par celle du haut de la pile
NEg      2NEg        -2          change le signe d une valeur
!        "H" "ello"!  "Hello"    concatene deux chaines
#        42#          "42"       convertit un nombre en chaine
MIn      6 49 MIn      6         donne la plus petite valeur
MAx      6 9 MAx       9         donne la plus grande valeur

Un ensemble distinct d operateurs logiques pour effectuer des tests est explique dans Chapitre 9.2.

Retour    Suivant
09.01.05