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

Langage Pascal Discussion :

[LG]contrôle de saisie


Sujet :

Langage Pascal

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [LG]contrôle de saisie
    Bonjour !

    Ma question n'est pas très longue,
    qqn pourrait-il me traduire ça en pascal :

    Si x n'est pas UN NOMBRE OU qu'il n'est pas compris ENTRE 0 et 10 alors...'



    C'est juste pour contrôler la saisie d'un utilisateur.
    Il faut pas que le prog foire si l'utilisateur entre une lettre au lieu d'un nombre (oh le con...) et ce nombre doit valoir [0,10]


    Merciiiiiiii ;-)

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Question posé 100 000 fois, mais bon... Je fais dans l'expéditif, j'ai autre chose à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function ReadNumber(var i: Integer; Min, Max: Integer): Boolean;
    var
      S: string;
      e: Integer;
    begin
      ReadLn(S);
      Val(S, i, e);
      ReadNumber &#58;= &#40;e = 0&#41; and &#40;i >= Min&#41; and &#40;i <= Max&#41;;
    end;
    Allez hop, vendu !

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    moi je propose quelque chose un peut plus simple

    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
     
     
          var  nbr &#58; integer;
     
      begin
     
            ........
     
              repeat
               &#123;$I-&#125;    
                   read&#40;nbr&#41;
                &#123;$I+&#125;    
               until &#40;ioresult&#41; and &#40; nbr in &#91;0..10&#93;&#41;;
            .........
      end.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Plus simple, ça se discute
    De plus l'utilisation de Read est une erreur, et l'utilisation d'un ensemble ([0..10]) implique que la valeur lue soit comprise entre 0 et 255. Donc, pas si super que ça

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  5. #5
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    De plus l'utilisation de Read est une erreur
    je ne te comprend : peut tu explique toi :
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  6. #6
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Il suffit de se reporter à l'aide :
    Citation Envoyé par L'aide sur Read
    With a type string variable:
    - Read reads all characters up to, but not including, the next
    end-of-line marker or until Eof(F) becomes True; it does not skip to the
    next line after reading. If the resulting string is longer than the
    maximum length of the string variable, it is truncated.
    - After the first Read, each subsequent Read will see the end-of-line
    marker and return a zero-length string.


    Use multiple Readln calls to read successive string values.
    Autrement dit, si tu utilises Read, le premier fonctionnera très bien. Et tous les suivants aboutiront à un bug, car Read bloquera sur la touche Entrée, ce que ReadLn évite.

    Donc Read est proscrit. C'est ReadLn qu'il faut utiliser. Décision ferme et sans appel

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  7. #7
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    c vrai, en fait je n'utilise jamais le read mais je me suis dit que dans ce cas ca pourais aller
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  8. #8
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    n'est-on pas en train de faire un exercice demandé à un étudiant ?

  9. #9
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    C'est juste une partie d'un exo... Tant qu'il nous donne pas l'énoncé, je crois qu'on peut répondre à ce genre de questions
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

Discussions similaires

  1. Arguments pour et contre Access ?
    Par bottura dans le forum Sondages et Débats
    Réponses: 240
    Dernier message: 24/03/2018, 00h25
  2. protection contre erreurs de saisie
    Par alcycy dans le forum C++
    Réponses: 2
    Dernier message: 25/03/2009, 18h58
  3. Protéger une disquette contre la copie
    Par benzaza dans le forum Assembleur
    Réponses: 20
    Dernier message: 16/01/2005, 11h42
  4. [Kylix] crypter la saisie sous kylix
    Par nahmsath dans le forum EDI
    Réponses: 2
    Dernier message: 15/10/2002, 14h16
  5. Algo "Contre l'ordinateur"
    Par Black-Ghost dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/10/2002, 11h55

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