mardi 5 décembre 2017

Garantir l'appartenance de la valeur entrée à un intervalle donné

Un problème souvent rencontré est la validation d'une valeur entrée par l'utilisateur. La forme la plus simple est de garantir l'appartenance de la valeur saisie à un intervalle donné. Par exemple, si la valeur saisie désigne un mois alors elle doit être comprise entre 1 et 12.

La solution la plus simple (sans faire recours à des bibliothèques) est l'utilisation d'une boucle de type Répéter ... Jusqu'à (Repeat ... Until) et ce pour deux raisons :

  1. Cette boucle est exécutée au moins une fois; la première lecture sera effectuée à l'intérieur de la boucle.
  2. Cette boucle garde l'utilisateur à l'intérieur jusqu'à ce qu'il fournit une valeur correcte.
Ainsi, le code suivant sera suffisant :


Program ForcerEntree;

Const
 MIN = 10;
 MAX = 100;
 
var 
 valeur : Integer;

BEGIN
 
 Repeat
  WriteLn('Faites entrer une valeur entre ', MIN, ' et ', MAX);
  ReadLn(valeur);
 Until ((valeur >= MIN) And (valeur <= MAX));
 WriteLn('Succès, vous avez saisi ', valeur);
 
END.

L'exécution sera ainsi :