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 :

[Débutant] Instruction goto


Sujet :

Fortran

  1. #1
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut [Débutant] Instruction goto
    Bonjour,
    J'ai écrit ce simple programme pour voir mieux la commande goto, mais il est plein d'erreurs. Alors pouvez-vous me le rectifier ?
    Merci

    Voil le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    program GO TO
    implicit none 
    10  print*,'entrer la valeur de X'
        read* ,X
        IF(X.LT. 0) then
           print*,'INvalide'
           GO TO 10
        else
           print*,'valide'
        END IF
    END

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Points : 185
    Points
    185
    Par défaut
    En général, mettre les messages d'erreurs permet de mieux voir le problème.
    En tout cas ce que je vois c'est :
    Evite de mettre des espaces, je ne suis pas sur que ça fonctionne (et évite d'utiliser des instructions fortran comme nom de programme, à mon avis ça ne fonctionne pas). Ecrit plutot
    Cette instruction signifie que fortran ne déduit pas le type de variable en fonction de son nom. Il faut le donner explicitement . Du coup , il faur que tu ecrive REAL X ou INTEGER X.

    Un conseil que je pêux te donner est de te concentrer toujours sur la première erreur détectée à la compilation. En général, la pluspart des autres erreurs sont la conséquence de la première.

  3. #3
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    Bonjour,
    Voila ce que me donne le compilateur apres la compilation:

    bbb.f:1:
    program bbb
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:2:
    implicit none
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:3:
    real X
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:4:
    10 print*,'entrer la valeur de X'
    ^
    Caractère non-numérique à (^) dans le champ d'étiquette [info -f g77 M LEX]
    bbb.f:5:
    read* ,X
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:6:
    IF(X.LT. 0) then
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:7:
    print*,'INvalide'
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:8:
    GO TO 10
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:9:
    else
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:10:
    print*,'valide'
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:11:
    END IF
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]
    bbb.f:12:
    END
    ^
    Premier caractère invalide à (^) [info -f g77 M LEX]


    je suis inquiet maintenat, je ne voit pas d erreurs dans mon code, alors est ce que l erreur est du compilateur?

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Le Fortran 77 est fixed-format, c'est a dire que les instructions doivent commencer a la colonne 6 et ne pas depasser la colonne 72. Les colonnes 1 a 4 sont reservees au labels, la colonne 5 au signe de continuation de ligne. Ces archaismes sont herites des antiques punch cards.
    Ton programme doit donc etre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
          program myprog
          implicit none
          real x
     
    10    print*,'entrer la valeur de X'
          read *, X
          IF (X.LT. 0) then
              print *, 'INvalide'
              GOTO 10
          else
              print *, 'valide'
          END IF
          END
    Le Fortran 90 a enleve ces restrictions et le code peut desormais etre en free format.

  5. #5
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    c est resolu, merci

  6. #6
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    J ai trouvé le probleme, c est la forme du program
    alors pouvez vous me dire comment je doit mettre la forme?
    en fortran 90 la forme n est pas importante mais en F77 elle est importante

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Les formes fixes et free-form sont bien décrites dans la plupart des manuels.

    Va voir dans ftp://ftp-developpez.com/fortran/cours/normes90-95.pdf à compter de la page 24.

    La plupart des compilateurs s'attendent par défaut à un code source fixe si l'extension est .f ou .for et à un code source libre si l'extension est .f90. Il est généralement possible de changer ce défaut par une switch.

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

Discussions similaires

  1. [Débutant] Instruction IF sans les "{}" (accolades)
    Par danouvrs dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 05/09/2008, 12h40
  2. Instructions goto _label
    Par Klaine dans le forum C
    Réponses: 6
    Dernier message: 21/05/2008, 18h23
  3. [Débutant] Instruction SBB
    Par rxjmo dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 08/03/2008, 17h36
  4. [Débutant] Instruction : Assigned
    Par colocolo dans le forum Delphi
    Réponses: 4
    Dernier message: 18/02/2007, 14h15
  5. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31

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