IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres IDE Pascal Discussion :

Comment empêcher la disparition de l'écran ?


Sujet :

Autres IDE Pascal

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Comment empêcher la disparition de l'écran ?
    Salut !

    Supposons que dans un programme nous déclarions une variable, par exemple, nbr, comme integer (type entier).

    Je remarque que lors de l'affectation d'une valeur à nbr, si nous lui affectons plutôt une valeur de type réel (real), l'écran disparaît.

    Que faire pour empêcher la disparition de l'écran ?

    Un exemple : un petit programme pour calculer la factorielle d'un nombre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    program Factorielle(input, output);
    var nbr : integer;
         fac : longint;
    begin
    repeat
    write ('Donnez un entier naturel :  '); 
    readln (nbr);
    until (nbr>=0);
    .
    .
    .
    end.
    La factorielle d'un nombre n'existe que pour les entiers naturels.
    Si l'utilisateur saisit un nombre réel au lieu d'un nombre entier naturel, l'écran disparaît dès la validation de la saisie.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Foe,

    L'écran "disparaît" parce que l'entrée génère une erreur.

    Il faut lire une chaine, puis essayer de l'interpréter comme un entier.
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Salut Droggo

    Pourriez-vous être plus explicite ?
    Je souhaite pour cela que vous expliquiez votre idée à partir de l'exemple que j'ai proposé.
    Merci de votre compréhension.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Geo,

    Petit exemple rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    program lecture_ok;
     
    var
      s : string;
      n,code : integer;
     
    begin
      // lecture de la chaine
     
      write ('entrez valeur : ')
      readLn(s);
     
      // essai de conversion en entier
     
      Val(s,n,code);
     
      // en retour, si code = 0, la valeur est bien un entier
     
      if (code = 0)
      then writeLn('La valeur est ', intToStr(n))
      else writeLn('La valeur n'est pas un entier');
    end.
    À quoi il faut ajouter tes propres contrôles, genre la valeur est-elle >= 0, le valeur est-elle dans les limites acceptables (qui sont petites ), et éventuellement créer une boucle tant que ce n'est pas ok...
    Si les cons volaient, il ferait nuit à midi.

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/09/2012, 17h53
  2. Réponses: 1
    Dernier message: 01/09/2008, 20h23
  3. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52
  4. Comment empêcher l'ouverture d'un TPopupMenu !?
    Par Lung dans le forum Composants VCL
    Réponses: 9
    Dernier message: 20/08/2003, 11h47
  5. [MSXML] Comment empécher la conversion des entités ?
    Par nima dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/11/2002, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo