eval sert à évaluer une expression.
eval a un ou deux argument(s) : une expression et éventuellement le
niveau souhaité de l’évaluation.
Il faut savoir que Xcas évalue toujours les expressions, sans avoir
besoin de la commande eval : le niveau d’évaluation est indiqué dans
la case eval de la Configuration du CAS du menu Cfg et vaut
par défaut vaut 25.
La commande eval est surtout utile lorsqu’on veut évaluer une
sous-expression dans l’éditeur d’expressions.
On tape :
On obtient :
On tape :
ou
On obtient :
On tape :
on peut alors avoir différentes évaluation de a selon le niveau dévaluation demandé :
Remarque
Pour les objets géométriques, en plus de l’évaluation exacte (au niveau
25 par dévaut), Xcas
rajoute une évaluation numérique (au niveau 1) au moment de l’affichage
pour pouvoir représenter les objets géométriques dependant de
paramètres définis par assume ou par une affectation numérique.
Voici différents exemples :
purge(r); R:=point(1+i*r); r:=-3;Le niveau correspondant à R:=point(1+i*r); affichera dans tous les cas le point et sa légende car l’évaluation numérique pour l’affichage de ce niveau est faite au moment de l’affichage donc après que r ait été défini.
purge(r); purge(p); R:=point(1+i*r); r:=p+1; p:=-4;Le point R n’apparait pas car l’évaluation numérique au moment de l’affichage n’est faite qu’au niveau 1. Ainsi r est remplacé par p mais p n’est pas remplacé donc la commande R:=point(1+i*r); n’affiche rien.
purge(r); R:=point(1+i*r):; r:=-3; eval(R,1);La commande eval(R,1) renvoie point(1+(i)*r) et dessine le point R et sa légende. En effet la réponse est évaluée formellement au niveau 1 ce qui donne la réponse point(1+i*r) puis pour la représentation graphique, point(1+i*r) est évalué numériquement (sans toucher aux légendes) ce qui permet d’afficher le point. La légende n’ apparait pas, lorsqu’on évalue un objet géométrique, mais ici, lorsqu’on fait eval(R,1), R est évalué en un objet géométrique, mais l’objet géométrique lui-même n’est pas évalué. Donc eval(R,1) dessine le point R et sa légende.
purge(r); purge(p); R:=point(1+i*r):; r:=p+1; p:=-4; eval(R,1);La commande eval(R,1) renvoie point(1+(i)*r), mais ne dessine pas le point R. En effet la réponse est évaluée formellement au niveau 1 ce qui donne la réponse point(1+i*r) puis pour la représentation graphique, point(1+i*r) est évalué numériquement au niveau 1 ce qui ne permet pas d’afficher le point.
purge(r); R:=point(1+i*r):; r:=-3; eval(R,2);La commande eval(R,2) renvoie point(1,-3) et le dessin du point R sans sa légende. En effet, quand on fait eval(R,2), alors R est évalué en un objet géométrique, et cet l’objet géométrique est lui-même évalué et donc la légende disparait.
purge(r); purge(p); R:=point(1+i*r):; r:=p+1; p:=-4; eval(R,2);La commande eval(R,2) renvoie point(1,p+1) et le dessin du point R sans sa légende. En effet, quand on fait eval(R,2), alors R est évalué en un objet géométrique, et cet l’objet géométrique est lui-même évalué et donc la légende disparait.