VAL |
Valeur |
---|---|
Turbo Pascal 1+ | System |
Syntaxe
Procedure Val(ch:String; Var nbre,err:Integer); |
Procedure Val(ch:String; Var nbre:Real;Var err:Integer); |
Paramètres
Nom | Description |
---|---|
ch | Ce paramètre permet d'indiquer la chaîne de caractères contenant le nombre encodé en alphanumérique. |
nbre | Ce paramètre retourner le nombre. |
err | Ce paramètre retourner l'erreur. |
Description
Cette procédure permet de convertir une chaîne de caractères en sa valeur numérique.
Remarques
- Si la valeur du paramètre err est 0, c'est qu'il n'y a pas eu d'erreur lors de la conversion de la chaîne de caractères en une valeur numérique. Si la valeur du paramètre err est supérieur à 0, cette valeur indique la position du caractère dans la chaîne de caractères où a été constaté l'erreur.
- Contrairement à la procédure READ, une valeur incorrecte dans la chaîne de caractères (paramètre ch) ne provoque pas d'erreur d'exécution, mais une simple mention de la position de l'erreur indiqué par le paramètre err.
- Lorsque la vérification d'intervalle est activée, la directive {$R+}, une valeur hors de l'intervalle génère toujours une erreur d'exécution. Lorsque la vérification de l'intervalle est désactivée, la directive {$R-}, les valeurs d'une valeur hors de l'intervalle varient en fonction du type de données de nbre. Si nbre est de type de données Real ou LongInt, la valeur de nbre n'est pas définie et le paramètre err renvoie une valeur non nulle. Pour tout autre type numérique, le paramètre err renvoie une valeur de 0 et le paramètre nbre contiendra les résultats d'un calcul de dépassement (en supposant que la valeur de la chaîne de caractères se situe dans la longue intervalle entière).
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
- Program ValSamples;
-
- Var
- N,Err:Integer;
- R:Real;
-
- BEGIN
- Val('0',N,Err);
- WriteLn('Val(0) = ',N,', Erreur=',Err);
- Val('123',N,Err);
- WriteLn('Val(123) = ',N,', Erreur=',Err);
- Val('-123',N,Err);
- WriteLn('Val(-123) = ',N,', Erreur=',Err);
- Val('123E',N,Err);
- WriteLn('Val(123E) = ',N,', Erreur=',Err);
- Val('-123E',N,Err);
- WriteLn('Val(-123E) = ',N,', Erreur=',Err);
- Val('-123G',N,Err);
- WriteLn('Val(-123G) = ',N,', Erreur=',Err);
- Val('G',N,Err);
- WriteLn('Val(G) = ',N,', Erreur=',Err);
- Val('123.45',R,Err);
- WriteLn('Val(123.45) = ',R:3:2,', Erreur=',Err);
- END.
on obtiendra le résultat suivant :
Val(0) = 0, Erreur=0Val(123) = 123, Erreur=0
Val(-123) = -123, Erreur=0
Val(123E) = 123, Erreur=4
Val(-123E) = 123, Erreur=5
Val(-123G) = 123, Erreur=5
Val(G) = 0, Erreur=1
Val(123.45) = 123.45, Erreur=0
Références
Aide-mémoire de Turbo Pascal versions de 3 à 6, Edition Marabout, De Groote, Virga, 1992, ISBN: 2-501-01833-8, page 447.
Dernière mise à jour : Dimanche, le 8 février 2015