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

Fortran Discussion :

Problème avec deux boucles do whiles imbriquées


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut Problème avec deux boucles do whiles imbriquées
    Voila voici mon code enfin une partie juste pour vous montrer ce que je n'arrive pas à retranscrire.
    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
    do while (R.ne.1)
     
            do while (S.ne.1.and.S.ne.2.and.S.ne.3.and.S.ne.4.and.S.ne.5)
              write(*,28)
    28        format(/,1X,'Entrez un chiffre compris entre 1 et 5 : ',$)
              read(*,*) S
             if (S.ne.1.and.S.ne.2.and.S.ne.3.and.S.ne.4.and.S.ne.5) then
                write(*,*)'Valeur incorrecte'
                end if
     
                      if (S.eq.2) then
                      write(*,29)
    29                format(/,1X,'Combien de piŠces de 2 euros ? ',$)
                      read(*,*) NBN
                      write(*,35)
    35                format(/,1X,'Appuyer sur 1 si saisie finie : ',$)
                      read(*,*) R
            if (R.ne.1) then
            write(*,*)'Entrez un autre chiffre'
            end if
     
    end do 
    end do
    en gros l'utilisateur doit entrer un chiffre entre 1 et 5 et genre s'il tape 2 ça lui demande de saisir le nombre de pièces de 2 euros et ensuite je souhaite demander à l'utilisateur de taper 1 si la commande est finie par exemple donc cela le sortirai de la 1ère boucle do while mais s'il tape autre chose, je voudrais que le programme réexécute la 2eme boucle do while et donc d'entrer de nouveau un chiffre pour refaire une saisie vous comprenez ? mais après le appuyer sur 1 si saisie finie ben il m'affiche plus rien il ne retourne pas à la 2ème boucle donc y'a surement une erreur e syntaxe ou je ne sais quoi ( ne vous en faites pas pour les tabulations sur force 3.0 cela ne joue pas ) donc voilà si quelqu'un peut m'éclairer ce serait top

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Bonjour,
    Sans entrer dans les détails, il y a une première chose qui m'a sauté aux yeux. Il manque un endif dans ton code. Je ne comprends pas comment tu peux arriver à compiler ton code...

    Je ne comprends pas trop le but de ta dernière condition sur R. Tu demandes à l'utilisateur de saisir un nouveau nombre qui n'est enregistré nulle part. Enfin, s'il s'agit de la possibilité de corriger une erreur de saisie ou autre, il me semble que cela doit aussi relever d'un do while (resaisie rant que la saisie n'est pas validée par R=1).

    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
    do while (R.ne.1)
     
            do while (S.ne.1.and.S.ne.2.and.S.ne.3.and.S.ne.4.and.S.ne.5)
              write(*,28)
    28       format(/,1X,'Entrez un chiffre compris entre 1 et 5 : ',$)
              read(*,*) S
              if (S.ne.1.and.S.ne.2.and.S.ne.3.and.S.ne.4.and.S.ne.5) then
                write(*,*)'Valeur incorrecte'
              end if
     
              if (S.eq.2) then
                 write(*,29)
    29          format(/,1X,'Combien de piŠces de 2 euros ? ',$)
                 read(*,*) NBN
                 write(*,35)
    35          format(/,1X,'Appuyer sur 1 si saisie finie : ',$)
                  read(*,*) R
                  do while(R.ne.1) 
                      write(*,*)'Entrez un autre chiffre'
                      read(*,*) NB
                      write(*,35)
                      read(*,*) R
                  enddo
            end if
     
        end do 
    end do

Discussions similaires

  1. Problème avec une boucle do while
    Par azertym dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/02/2012, 14h37
  2. Problème avec deux boucles
    Par Akim13 dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2011, 05h12
  3. [AC-2003] Problème avec ma boucle Do While
    Par maw59 dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/03/2010, 11h21
  4. [AC-2007] Probléme avec une boucle DO While
    Par theBinette dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/02/2010, 17h10
  5. Réponses: 3
    Dernier message: 24/05/2007, 17h56

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