Manuel des Scripts Automation Engine > Introduction > Niveau avancé > Calcul

Calcul

Ce document décrit les opérations de calcul qui peuvent être réalisées à l'aide du script AE.

Eléments de script

Le script AE fournit les quatre opération de base sous la forme d'éléments de script :

Vous disposez également de la fonction de script MOD qui récupère le reste d'une division.

La fonction de script RANDOM vous permet de générer, si nécessaire, des nombres aléatoires.

Le résultat de l'opération est enregistré dans une variable de script.

Exemple :

:SET &DIFFERENCE# = SUB(100,50)

Dans les opérations de calcul, les nombres négatifs (type de données : "signed") et les nombres décimaux (type de données : "float") sont aussi pris en charge. La variable cible qui contient le résultat du calcul doit présenter le type de données approprié. Le type de données "string" n'est pas autorisé pour les opérations de calcul !

Les chiffres après la virgule des résultats sont supprimés lorsque le type de données de la variable cible ne prend pas en charge les nombres décimaux. 

Si une opération de calcul fournit un résultat négatif et que le type de données de la variable cible ne prend pas en charge les signes, une erreur d'exécution se produit !

Automic recommande d'utiliser le type de données le plus élevé comme type de données de la variable cible (voir le tableau). Le résultat du calcul ne doit pas dépasser la valeur "9 999 999 999 999 999".

Types de données des opérandes Types de données autorisés de la variable cible
unsigned, unsigned unsigned, signed, float
unsigned, signed signed, float
unsigned, float float
signed, signed signed, float
signed, float float
float, float float

Le type de données le plus élevé est "float" (nombres décimaux positifs et négatifs). Vient ensuite le type de données "signed" (nombres entiers positifs et négatifs). Le type de données "unsigned" ne prend en charge que les nombres entiers positifs. Il s'agit du type de données le moins élevé.

Exemple : Le type de données de la variable de résultat "&SUM#" doit être au moins "signed" si un nombre négatif a été indiqué comme opérande. Le type de données "float" est aussi possible.

:DEFINE &UNSIGNED#,unsigned
:DEFINE &SIGNED#,signed
:DEFINE &SUM#,signed

:SET &UNSIGNED# = 12
:SET &SIGNED# = -5

:SET &SUM# = ADD(&SIGNED#,&UNSIGNED#)

Cette ligne résulterait en une erreur :

:SET &UNSIGNED# = ADD(&SIGNED#,&UNSIGNED#)

Attention : lors d'opérations de calcul avec des nombres variables, le résultat peut être imprécis !

Résolution d'un terme arithmétique

Dans AE, vous pouvez aussi résoudre une expression arithmétique à l'aide de l'élément de script :SET et enregistrer le résultat dans une variable. Ceci réduit et simplifie significativement la longueur du script.

Si la variable cible présente le type de données "unsigned" et que le résultat du calcul donne un nombre négatif, une erreur d'exécution de produit. Si le type de données de la variable cible ne prend pas en charge les nombres décimaux, ils sont également supprimés.

Parallèlement aux types de calcul de base, le calcul peut contenir des parenthèses et des signes.

Une ligne qui contient des opérateurs de calcul (+,-,*,/) est généralement traitée comme un terme. Veillez à ne pas placer le terme entre guillemets simples ou doubles. Sinon, il est interprété comme une chaîne de caractères.

Attention : Vous ne devez pas utiliser de fonctions de script dans les expressions arithmétiques.

Veillez à la pondération des opérateurs (l'opérateur de multiplication est prioritaire sur l'opérateur de soustraction).

Exemple :

 :DEFINE &UNSIGNED#,unsigned
:DEFINE &FLOAT#,float
:DEFINE &RES#,float

:SET &UNSIGNED# = 12
:SET &FLOAT# = -0.50

:SET &RES# = &FLOAT#*3 + (-&UNSIGNED#) - 3

 

Rubriques connexes :

Elément de script Description

ADD

Exécute une addition.

SUB

Exécute une soustraction.
MULT Exécute une multiplication.
DIV Exécute une division.
MOD Indique le quotient d'une division.
RANDOM Génère des nombres aléatoires.

GET_BIT

Vérifie qu'un bit particulier est défini dans un champ de bit

Eléments de script - Calculs

Généralités sur les scripts
Eléments de script - Liste alphabétique

Eléments de script - Répartition fonctionnelle