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

Ada Discussion :

Sortie de boucle par validation O/N


Sujet :

Ada

  1. #1
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut Sortie de boucle par validation O/N
    Bonjour à tous,

    J'aimerai savoir comment faire pour faire une sortie de boucle par la validation de O ou N (Oui ou Non)

    La sortie de boucle se fait par l'entrée de O.

    J'ai mis ça :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    while Touche /='o' or Touche /='O' loop
     
     
     
          while Touche /='o' or Touche /='O' loop
     
             Put("Entree un entier N1 : ");
     
             Get(B1);
     
             Put_Line("Voulez vous valider la saisie? (o/n) : ");
     
             Get(Touche);
     
             New_Line;
     
          end loop;
     
     
     
          while Touche /='o' or Touche /='O' loop
     
             Put("Entree un entier N2 : ");
     
             Get(B2);
     
             Put_Line("Voulez vous valider la saisie? (o/n) : ");
     
             Get(Touche);
     
             New_Line;
     
          end loop;
     
          Put_Line("Voulez vous valider le deux saisies? (o/n) : ");
     
          Get(Touche);
     
          New_Line;
     
       end loop;
    Mais la boucle ne s'arrète pas que ça soit o ou n (O ou N aussi)

    Avez vous une idées?
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  2. #2
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Élémentaire mon chèr Watson

    Harrap's Mini says that while means « when », « as long as » (quand, tant que, ...)

    .... yes, there's a an Harrap's Mini... even shorter than the short one ... Hihihihi...
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Touche /='o' or Touche /='O'
    erreur de débutant en programmation car condition toujours vraie

    essayez

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Touche /='o' and Touche /='O'

  4. #4
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    j'ai donc modifier le OR en AND, mais ça ne marche toujours pas.

    il ne prende pas en compte la deuxieme boucle.
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  5. #5
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    Bien vu HRS ... j'avais même pô tiqué la dessus

    Par contre ....
    [quote]Touche /='o' and Touche /='O'[quote]
    Aussi bien 'O' que 'o' sont des condition de continuation, et donc ça ne peut pas convenir d'utiliser Touche /= 'O'/'o' comme condition de continuation (c'est l'inverse)

    Tiens Kort3x, pour ton Cortex ...

    Rappel de deux tables de vérité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    a b (a or b)
    0 0    0
    0 1    1
    1 0    1
    1 1    1
     
    a b (a xor b)
    0 0   0 
    0 1   1
    1 0   1
    1 1   0
    (a or b) est parfois appelé « addition binaire »... mais tu remarquera surtout qu'elle n'est à zéro (faux/false) uniquement quand les deux sont à zéro : on vérifie effectivement que not (a or b) <=> (not a and not b). C'est une égalité remarquable souvent bien utile... je trouve d'ailleurs que (not a and not b) est souvent plus parlante que not (a or b) (en plus, ça évite la trappe que soulignait si bien HRS). Cette fonction correspond à l'affirmation du langage courant qui dit « si au moins a ou b ».

    (a xor b) correspond au contraire exactement au « ou » du langage courant, comme dans l'assertion toujours vrai : « la porte est ouverte ou fermée »... car une porte ne peut pas être les deux à la fois... Cette fonction ne vaut 1 (vrai/true) que lorsque les deux arguments sont différents : on vérifie effectivement que (a xor b) <=> (a or b) and not (a and b) (qui se lit : l'un des deux au moins est vrai, mais pas les deux en même temps). On peut le considérer comme la « différence logique ».

    Reprenons ton équation logique : (Touche /= 'O' or Touche /= 'o'), et évaluons la ('X' désigne toute autre que lettre que 'O' ou 'o')

    • Touche = 'X' => (Touche /= 'O' or Touche /= 'o') = True
      car ('X' /= 'O' or 'X' /= 'o') = True or True = True
    • Touche = 'O' => (Touche /= 'O' or Touche /= 'o') = True
      car ('O' /= 'O' or 'O' /= 'o') = False or True = True
    • Touche = 'o' => (Touche /= 'O' or Touche /= 'o') = True
      car ('o' /= 'O' or 'o' /= 'o') = True or False = True


    Tu pourrais utiliser (Touche /= 'O' xor Touche /= 'o'), tu aurais
    • Touche = 'X' => (Touche /= 'O' xor Touche /= 'o') = False
      car ('X' /= 'O' xor 'X' /= 'o') = True xor True = False
    • Touche = 'O' => (Touche /= 'O' xor Touche /= 'o') = True
      car ('O' /= 'O' xor 'O' /= 'o') = False xor True = True
    • Touche = 'o' => (Touche /= 'O' xor Touche /= 'o') = True
      car ('o' /= 'O' xor 'o' /= 'o') = True xor False = True

    Ce qui aboutis bien au résultat que tu souhaite... mais le xor n'est pas très « humainement lisible ».

    Rappel vis-à-vis de ton code : si tu l'utilise dans une boucle while, c'est une condition de continuation. Pour que le code soit plus humainement lisible, tu peux alors aussi (c'est équivalent), souligner la condition d'arrêt, et utiliser une condition comme (not Touche = 'N' and not Touche = 'n').... je trouve cette expression plus intuitive.
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

  6. #6
    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
    il ne prende pas en compte la deuxieme boucle.
    normal, encore une erreur de débutant en programmation

    avant d'attaquer la 2nde boucle, faire

    touche := ' ';

  7. #7
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    ok, effectivement, c'est bien cela qu'il manqué.

    Merci.
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  8. #8
    Inactif Avatar de Hibou57
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 852
    Points : 493
    Points
    493
    Par défaut
    wé... heureusement qu'il y en a qui assure avec trois mots et deux points pendant que je me plante en bouffant des tartines



    je le ferai plus, ... promis
    ------------------------------------------------------------
    Sur le web, c'est la liberté qui est gratuite, mais bien évidement pas la consomation ... et encore moins la consomation à outrance
    ------------------------------------------------------------
    Language shapes the way we think, and determines what we can think about [ B. Lee Whorf ] ... mais ce n'est pas tout à fait vrai à 100%...
    ------------------------------------------------------------
    Pascal (FreePascal?) - Ada (Gnat-3.15p)
    XSLT (XSLTProc) - CGI binaires (Ada/C) [ Clavier Arabe ]
    ------------------------------------------------------------

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

Discussions similaires

  1. [XSLT] Sortie de template/boucle : par récursivité ?
    Par pegazuss5 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 01/12/2010, 22h50
  2. probleme de resultat en sortie de boucle for
    Par afssaLERH dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/10/2007, 16h16
  3. sortie de boucle
    Par peldaine dans le forum VBScript
    Réponses: 4
    Dernier message: 18/07/2007, 13h59
  4. Réponses: 3
    Dernier message: 04/04/2007, 16h22
  5. Réponses: 4
    Dernier message: 09/12/2005, 08h25

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