Previous Up Next

6.14.3  Pour changer le niveau dévaluation : eval_level

On peut alors avoir différentes évaluation d’une variable selon le niveau n dévaluation demandé : ce nombre n est le nombre de la case eval de la configuration du CAS qui représente le nombre maximum d’évaluations récursives en mode interactif (cf 1.6.1). On peut changer ce nombre avec eval_level qui a comme argument l’entier n>0.
eval_level() renvoie la valeur de eval de la configuration du CAS.
eval_level(0) met la valeur de eval de la configuration du CAS à 0 et du coup plus rien ne sera évalué. On peut revenir en situation normale en changeant la valeur de eval de la configuration du CAS.
On tape :

purge(a,b,c);a:=b+1; b:=c+1;c:=3;

On tape :

eval_level(1)

puis

a,b,c

On obtient :

b+1,c+1,3

et eval de la configuration du CAS vaut 1.
On tape :

purge(a,b,c);a:=b+1; b:=c+1;c:=3;

On tape :

eval_level(2)

puis

a,b,c

On obtient :

c+1+1,4,3

et eval de la configuration du CAS vaut 2.
On tape :

purge(a,b,c);a:=b+1; b:=c+1;c:=3;

On tape :

eval_level(3)

puis

a,b,c

On obtient :

5,4,3

et eval de la configuration du CAS vaut 3.
On tape ensuite :

eval_level()

On obtient :

3

ce qui veut dire que eval de la configuration du CAS vaut 3.
Remarque
On peut préciser le niveau dévaluation d’une variable sans changer la configuration du CAS en utilisant eval avec 2 arguments une expression et son niveau d’évaluation. On tape :

purge(a,b,c);a:=b+1; b:=c+1;c:=3;

puis

eval(a,0),eval(a,1),eval(a,2),eval(a,3)

On obtient :

a,b+1,c+1+1,5

Attention
eval_level est fait pour être exécuté seul, sinon il y aura forcément des effets de frontière entre la valeur du niveau d’évaluation utilisé pour les commandes de la ligne (en principe le prćdent) et la nouvelle valeur qui s’appliquera après. Si on tape :

purge(a,b,c);a:=b+1; b:=c+1;c:=3;

puis sur un même niveau :

eval_level(3);a,b,c

si eval de configuration du CAS vaut 1 alors a,b,c seront évalués au niveau 1, puis eval de configuration du CAS vaudra 3.


Previous Up Next