VarSi
Options - < - Index - >

 

Définit une variable (voir var) définit par une test conditionnel (une condition).
Voir aussi pointAimante.

  Syntaxe Paramètres
  varsi z = [ condition , expression_algébrique1 ou "texte1" , expression_algébrique2 ou "texte2" ] ;  z : nom de la variable varsi
 Condition : un expression test
expression_algébrique 1 ou 2 : une expression à évaluer comme pour une variable var
"texte1" : un texte entre guillement pour être utilisé dans un texte texte (ne pas mettre de virgule dedans !)

Résultat : 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".


Exemple:
A = point( 0 , 0 );
B = point( 3.5 , 3 );
cerayA4 = cerclerayon( A , 4 ) { grisfonce , 7 };
varsi x =[AB=4_5%,1,2] { 2 };
cerayAx = cerclerayon( A , x ) { rouge };

Place 2 points A et B puis construit le cercle de centre A et de rayon 4.
Définit ensuite x comme valant 1 si la longueur AB vaut 4 à 5% d'unité près (c'est-à-dire à 0,05 près) sinon x vaut 2,
puis dessine le cercle de centre A et de rayon x !


Les tests conditionnels
Syntaxe
Emploi
Exemple
=, <>, <, >, <=, >=
pour comparer 2 valeurs numériques AB<2 ou z>=3
sur
pour tester si un point est proche d'un autre AsurB_5% : test si A est sur B à 5% d'unité près
Asur(3,4)_10% : test si A est proche du point de coordonnées (3,4) = 10% d'unité près
appartient
pour test si un point appartient à un autre objet CappartientAB_10% : test si C est un point de la droite (AB) à 10% d'unité près
Cappartientd_5% : test si C est un point de la droite nommée d à 5% près

 

 


Les imbrications de tests

Il est possible d’imbriquer des conditions les unes dans les autres, mais pas plus de 2. Au delà, il faut décomposer le test.

Il y a donc 3 types d’imbrications possibles :

  • varsi z = [ condition1 , [ condition2 , expression_algébrique1 ou "texte1" , expression_algébrique2 ou "texte2" ] , expression_algébrique3 ou "texte3" ] ;
  • varsi z = [ condition1 , expression_algébrique1 ou "texte1" , [ condition2 , expression_algébrique2 ou "texte2" , expression_algébrique3 ou "texte3" ] ] ;
  • varsi z = [ condition1 , [ condition2 , expression_algébrique1 ou "texte1" , expression_algébrique2 ou "texte2" ] , [ condition3 expression_algébrique3 ou "texte3" , expression_algébrique4 ou "texte4" ] ] ;

Ces imbrications permettent de programmer 3 types de booléens :

  • le booléen (condition1 ET condition 2) s’obtient à l’aide de : varsi z = [ condition1, [condition2, 1, 0], 0 ] ;
  • le booléen (condition1 OU condition 2) s’obtient à l’aide de : varsi z = [ condition1, 0, [condition2, 1, 0] ] ;
  • le booléen (condition1 XOR condition 2), qui correspond au "ou exclusif", s’obtient à l’aide de : varsi z = [ condition1, [condition2, 0, 1], [condition2, 1, 0] ] ;

Exemple:
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 };
t=texte(-5,5,"valeur de z : $z$");

Place 2 points A et B puis trace les cercles de centre A et de rayon et de centre B et de rayon 4.
M est un point libre.
z vaudra 1 si il est dans l'intersection des 2 disques précédents, sinon il vaudra 0 :
on puet le traduire ainsi : si AM est plus petit que 3 et si BM est plus petit que 4 alors z vaut 1 sinon il vaut 0.
Le texte t affiche alors la valeur de z suivant la position de M.


TracenPoche (c) Sésamath