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

Pascal Discussion :

Problème boucle read


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Par défaut Problème boucle read
    Bonsoir,
    J'ai un petit soucis lors d'une phase de test dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Repeat
    writeln('Voulez-vous rejouer? ');
    read(r);
    Until ((r='oui') or (r='non'));
    rejouer:=(r='oui');
    Lorsque je teste pour savoir si l'utilisateur s'est trompé en ne mettant ni oui nin non, la boucle ne marche pas! En effet en essaytn de mettre non ou oui, jusqu'ici tout se passe bien mais lorsque l'utilisateur rentre autre chose, on voit s'afficher "Voulez-vous rejouer? " en boucle sans attente de l'utilisateur...Auriez-vous une idée de résolution du problème?
    Je vous remercie par avance,
    Gérard

  2. #2
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    bonjour et bienvenu
    change ton read en readln (plus conseillé pour ces genres d'utilisation) cf http://cyberzoide.developpez.com/info/turbo/chap1.php3
    @+

  3. #3
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    voila ce lien super pour voir la difference
    http://physinfo.ulb.ac.be/cit_course...CAL/pas011.htm

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 13
    Par défaut
    Je tenais à vous remercier tout d'abord pour votre aide aussi rapide et pendant que je suis lancé j'aurais une nouvelle question...lorsque mon programme attend un entier comme donnée read et que l'utilisateur renvoie une chaîne de caractère par exemple, TP va renvoyer automatiquement un message d'erreur et fermera le programme. J'aurais voulu savoir la commande pour empêcher cette erreur et de l'utiliser pour marquer mon propre message d'erreur et forcer l'utilisateur à rerépondre. Sur TI en basic j'utilisais la fonction loop et je me débouillais après selon le code de l'erreur mais je ne suis pas encore assez avancé pour connaître toutes les fonctions de TP. Je m'en réfère à votre aide. Merci par avance!

  5. #5
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Bonjour
    je vois ce que tu veux ,et pour faire ce que tu dis il faut que tu reecrive la procedure read ou plutot ecrire une fonction qui te permet de lire les entiers

  6. #6
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    voila j'ai une soluttion pour toi il faut utiliser IOresult pour savoir si ce que tu veux s'est bien passé mais avant ça il faut desactiver le controle des entrees/Sorties en utilisant {$I-} si tu veux plus d'expliquation regarde dans l'aide en ligne de Turbo Pascal
    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
     
    {Fonction pour lire un entier au clavier}
    function lireEntier(nb:integer):integer;
    begin
    {Pour pouvoir intercepter les
    erreurs d'E/S par IOResult, il faut désactiver
    le contrôle des E/S }
       {$I-}
       readln(nb);{Lecture de l'entier}
       {Au cas ou il s'agirait pas d'un entier reitérer la demande}
       while (IOresult<>0) do
       begin
         write('Entrer un entier:');
         readln(nb);
       end;
       lireEntier:=nb;{Affecter l'entier lu finalement}
    end;
    voila j'espere t'avoir aidé?
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème boucle for
    Par toniooooo dans le forum Langage
    Réponses: 10
    Dernier message: 18/04/2006, 14h42
  2. [XSL] problème boucle
    Par VolaiL dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/04/2006, 16h55
  3. Problème boucle while et evenement
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 30/03/2006, 18h11
  4. [FLASH 8] Problème Boucle For
    Par Begood dans le forum Flash
    Réponses: 6
    Dernier message: 21/03/2006, 11h36
  5. Problème de read/write
    Par mylooz dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 25/03/2005, 19h15

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