C’est un objet VAR dont la valeur dépend d’une condition.
Syntaxe générale : varsi z = [ condition , expression_algébrique1 ou "texte1" , expression_algébrique2 ou "texte2" ] ;
Si la condition est vraie, alors z prendra la valeur expression_algébrique1 ou "texte1" , si elle est fausse, alors z prendra la valeur expression_algébrique2 ou "texte2".
Un varsi peut être utilisé comme opérateur de conditonnement d’existence d’objet grâce à la fonction µ.
Syntaxe des conditions : il existe 2 types de conditions.
1er type : expression_algébrique opérateur expression_algébrique
Les opérateurs utilisables sont : =, <>, <, >, <=, >=
Pour les opérateurs = et <>, il faut utiliser le _x% comme pour l’objet pointaimante.
Exemple 1 :
La condition AB=2 est vraie si AB=2 à 0,05 près. Dans ce cas la variable x vaut 1. Sinon, x vaut 2.
A = point( 0 , 0 );
B = point( 3.5 , 3 );
cerayA4 = cerclerayon( A , 4 ) { grisfonce , 7 };
varsi x =[AB=4_5%,1,2] { 2 };
Exemple 2 :
On peut entrer n’importe quelle expression algébrique dans la condition et dans les valeurs du varsi.
A = point( -3.57 , -0.73 );
B = point( 4.8 , -0.8 );
M = point( 2.87 , 4.67 );
sAM = segment( A , M );
sMB = segment( M , B );
varsi x =[AM<BM,2*AB,ln(AB)];
2ème type : point sur (x,y) ou point sur point ou point appartient d ou point appartient AB
Pour ces différentes syntaxes, il faut aussi utiliser le _x%.
Exemple 3 :
Si la distance entre A et C est inférieure à 0,1 alors la varible x vaut 1, sinon, x vaut 0.
Si la distance entre C et la droite (AB) est inférieure à 0,2 alors la varible y vaut 1, sinon, y vaut 0.
A = point( -4.43 , -0.17 );
B = point( 4.7 , -1.9 );
dAB = droite( A , B ) { 7 , sansnom };
C = point( 0.17 , 3 );
varsi x =[CsurA_10%,1,0] { 0 };
varsi y =[CappartientAB_20%,1,0] { 0 };
Utilisation du VarSi
Le varsi peut être utilisé comme toute autre variable. Mais, contrairement aux objets var, le varsi peut prendre du texte comme valeur. Cette texte peut-être affiché, mais aussi servir à la mise en forme de certains objets.
Exemple 4 :
Le varsi définit la position du point M sur la droite (AB).
A = point( 0 , 0 );
B = point( 2 , 0 );
dAB = droite( A , B );
C = point( -6 , 6 );
D = point( 0 , 6 );
var x =CD { 6 };
sCD = segment( C , D );
varsi z =[CD<4,1+x/4,-x/4] { -1.5 };
M = pointsur( A , B , z ) { noir , rond2 };
Exemple 5 :
Le varsi prend pour valeur du texte. L’objet texte1 sert à afficher la valeur de la variable x. C’est pour cela que l’on retrouve la syntaxe $x$ comme toute autre variable.
O = point( 0 , 0 );
cerayO3 = cerclerayon( O , 3 );
M = point( -2 , 1 ) { (-0.73,-0.77) };
varsi x =[OM<=3,"M_est_à_l'intérieur","M_est_à_l'extérieur"] { M_est_à_l'intérieur };
texte1 = texte( -2 , 5 , "$x$") { rouge , dec2 };
Exemple 6 :
Les varsi permettent aussi la mise en forme conditionnelle.
La syntaxe du varsi est la même, mais les valeurs sont des textes contenant des options de mise en forme séparées par des "-". Par exemple, varsi z =[AB<2,"rouge-1","noir-3-v"]. Ensuite la variable varsi peut être insérée dans les options des objets à l’aide des séparateurs $.
Les options concernées sont la couleur, le style, la visibilité et l’option trace.
A = point( 2 , 3.5 );
B = point( -1 , 3.5 );
varsi y =[AB<3,"noir-3","vert-1"] { vert-1 };
varsi z =[AB<3,"rouge-3-v","i"] { i };
C = point( 3 , 0.5 ) {$z$ , rouge , 3 , car+1 , gras , i };
D = point( 2 , -2 ) {$y$ , vert };
E = point( -4 , -1 ) {$y$ , vert };
cediaDE = cercledia( D , E ) {$y$ , vert };
Il est possible d’imbriquer des conditions les unes dans les autres, mais pas plus de 2.
Il y a donc 3 types d’imbrications possibles :
Ces imbrications permettent de programmer 3 types de booléens :
Exemple 7 :
Dans l’exemple ci-dessous, le varsi z ne prendra pour valeur 1 que si le point M appartient à l’intersection des 2 disques
A = point( -2.5 , -1 );
B = point( 2.5 , 1 );
c1 = cerclerayon( A , 3 ) { rouge , plein60 };
c2 = cerclerayon( B , 4 ) { plein30 };
M = point( -1.98 , 3.63 ) { noir };
varsi z =[AM<=3,[BM<=4,1,0],0] { 0 };