BiO_GetReal

Fonction Catégorie Version
BIO 02 BiO_GetReal Gestion Entrées Utilisateur 1.0 - Janvier 2007

Description

But Demande d'entrer un nombre réel en proposant l'ancienne valeur.
Prototype (BiO_GetReal Message Val_courante Val_Défaut)
Argument Message : - Le message qui sera affiché - chaîne -
Val_courante : - La valeur courante de la variable - réel -
Val_Défaut : - Valeur proposée par défaut - réel -
Retours Un nombre réel ou 0.0 - réel -
Var. globales Néant
Description BiO_GetReal interrompt la tâche en cours pour demander de saisir un nombre, en proposant la valeur précédente si la variable a déjà été utilisée ou, sinon une valeur par défaut.
Notes C'est la fonction GetReal améliorée, la version normale ne proposant pas de valeur précédente ni de valeur par défaut.
La valeur par défaut doit être obligatoirement un nombre réel (exemple 25.0 et non pas 25).
Exemples

Command: (setq Nb1 (BiO_GetReal "Hauteur : " Nb1 25.0))
    Hauteur : <25.0000> : 46
    46.0            ------   le résultat
	
Command: (setq Nb1 (BiO_GetReal "Hauteur : " Nb1 25.0))
    Hauteur : <46.0000> : [Touche entrée]
    46.0            ------   le résultat
	
Command: (setq Nb2 (BiO_GetReal "Hauteur : " Nb1 66))
    Hauteur : <46.0000> : 75
    75.0            ------   le résultat
	
Autre exemple	

Command: (setq z1 (BiO_GetReal "Largeur : " z1 z2))
    Largeur : <0.0000> : [Touche entrée]
    0.0            ------   le résultat
    Dans ce cas les arguments z1 et z2 sont "nil"
	
Autre exemple	

Command: (setq L1 (BiO_GetReal "Longueur : " L1 50))
    Longueur : <0.0000> : [Touche entrée]
    0.0            ------   le résultat
  La valeur par défaut doit être un nombre réel pour être prise en compte.

La fonction


   1- (defun BiO_GetReal (*Msg *Val_cour *Defo / Reponse)

   2-     (if (not *Defo)
   3-         (setq *Defo 0.0)
   4-     )
   5-     (if (not *Val_cour)
   6-         (if (= (type *Defo) 'REAL) 
   7-             (setq *Val_cour *Defo)
   8-             (setq *Val_cour 0.0)
   9-         )
  10-     )
  11-     (setq Reponse (getString (prompt (strcat *Msg 
  12-		                                        " <" 
  13-		                                        (rtos *val_cour) 
  14-		                                        ">: "))))
  15-     (if (equal Reponse "") 
  16-         (eval *Val_cour)
  17-         (atof Reponse)
  18-     )
  19- )
Lignes 2-4 :  Pour éviter les messages d'erreur, si l'argument 'valeur par défaut' est nul.
Ligne 5 :     Si l'argument 'valeur courante'  est nul,
Ligne 7 :       Donne-lui la valeur de l'argument 'valeur par défaut', si celui-ci 
                    est un nombre réel,.
Ligne 8 :       Sinon,  la valeur par défaut n'est pas un réel, donne-lui la valeur 0.0
Lignes 11-14 :Affiche le message et le nombre qui sera  pris en compte si on actionne 
                    la touche "Entrée"
Ligne 13 :       Le nombre
Ligne 15 :    Si on a appuyé sur la touche "Entrée" (donc sans taper un nombre),
Ligne 16 :      Retourne la valeur courante
Ligne 17 :      Sinon le nombre entré (chaîne transformée en nombre réel).

Type : Renvoie le type du symbole - Ici vérifie si la valeur par défaut est un nombre réel.
getstring : Demande d'entrer une chaîne.
prompt : Affiche un message dans le bas de l'écran.
strcat : Concatène (regroupe) plusieurs chaînes en une seule.
rtos : Transforme un nombre réel en chaîne
equal : Détermine si 2 expressions sont égales
eval : Renvoie le résultat de l'évaluation d'une expression.
atof : Transforme une chaîne en un nombre réel.