Problème [TurboPascal]
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Sous TurboPascal 7, je déclare une variable de type intervalle :
var nom_variable:5..50;
Je lance le programme comportant readln(nom_variable);, j'entre une valeur; jusque là tout va bien. Mais si j'entre un nombre inférieur à 5 ou supérieur à 50, il n'y a pas de message d'erreur. Je clique sur debug|watch et j'entre le nom de la variable, il m'affiche bien ce que j'ai entré. Bref, c'est comme si 5..50 voulait dire integer.
Dans les cours de Pascal que j'ai lu sur Internet il ne devrait pas accepter un nombre hors de cette limite.
Comment faire ?
Merci pour votre réponse
Sous TurboPascal 7, je déclare une variable de type intervalle :
var nom_variable:5..50;
Je lance le programme comportant readln(nom_variable);, j'entre une valeur; jusque là tout va bien. Mais si j'entre un nombre inférieur à 5 ou supérieur à 50, il n'y a pas de message d'erreur. Je clique sur debug|watch et j'entre le nom de la variable, il m'affiche bien ce que j'ai entré. Bref, c'est comme si 5..50 voulait dire integer.
Dans les cours de Pascal que j'ai lu sur Internet il ne devrait pas accepter un nombre hors de cette limite.
Comment faire ?
Merci pour votre réponse
A voir également:
- Problème [TurboPascal]
- Turbopascal - Télécharger - Édition & Programmation
1 réponse
et bien, c'est vrai! une variable ayant comme un intervalle d'entiers est un entier, si tu veux obliger l'utilisateur à saisir un nombre entre 5 et 50 tu doit faire:
c'est la structure itérative, qui valide l'entree de l'utilisateur!
var ma_variable:integer; begin repeat readln(ma_variable); if not (ma_variable in [5..50]) then writeln('le nombre doit etre entre 5 et 50!'); until (ma_variable in [5..50]); end.
c'est la structure itérative, qui valide l'entree de l'utilisateur!
Merci pour ta réponse.
Pour que les valeurs des variables à intervalle soient limitées, il faut ajouter la directive de compilation {$R+}.