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 :

[Fortran 77] if arithmetique et boucle imbriquée


Sujet :

Fortran

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [Fortran 77] if arithmetique et boucle imbriquée
    Bonjour
    je viens de tomber sur un if artihmetique dans un vieux code fortran 77.

    Je souhaite le remplacer par un if logique mais j'ai un doute sur l'algo car il semble que le if soit imbriqué dans une boucle do ?
    en gros si ARRAY(K,J) n'est pas NUL, on sort de la boucle 21 c'est ça ?

    Merci de votre aide

    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
     
          IF (ARRAY(K,K)) 41,21,41
     
       21 DO 23 J=K,NORDER
          IF (ARRAY(K,J)) 31,23,31
     
       23 CONTINUE
     
          DETERM=0.
          RETURN
     
       31 DO 34 I=K,NORDER
          SAVE=ARRAY(I,J)
          ARRAY(I,J)=ARRAY(I,K)
       34 ARRAY(I,K)=SAVE
    PS : je n'ai pas mis le label 41 mais il n'est pas important.

  2. #2
    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
    Citation Envoyé par michubuntu Voir le message
    Bonjour
    je viens de tomber sur un if artihmetique dans un vieux code fortran 77.

    Je souhaite le remplacer par un if logique mais j'ai un doute sur l'algo car il semble que le if soit imbriqué dans une boucle do ?
    en gros si ARRAY(K,J) n'est pas NUL, on sort de la boucle 21 c'est ça ?

    Merci de votre aide

    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
     
          IF (ARRAY(K,K)) 41,21,41
     
       21 DO 23 J=K,NORDER
          IF (ARRAY(K,J)) 31,23,31
     
       23 CONTINUE
     
          DETERM=0.
          RETURN
     
       31 DO 34 I=K,NORDER
          SAVE=ARRAY(I,J)
          ARRAY(I,J)=ARRAY(I,K)
       34 ARRAY(I,K)=SAVE
    PS : je n'ai pas mis le label 41 mais il n'est pas important.
    Le "if (Array(k,k)) 41,21,41" pourrait être remplacé par "if (Array(k,k) /= 0) goto 41". Si l'étiquette 41 suit immédiatement le bloc, il serait alors possible de remplacer le if par "f (Array(k,k) == 0) then" et mette un endif à la position de l'étiquette 41.

    Le "if (Array(k,j)) 31,23,31" pourrait être remplacé par "if (Array(k,j) /= 0) goto 31". Ce if sert de condition de sorti de la boucle. Il serait difficile de le remplacer directement par une construction if ... then ... endif, à moins de déplacer la deuxième boucle dans la première...

Discussions similaires

  1. Quel est le nombre maximum de boucles imbriquées (C, Java, Fortran) ?
    Par torNAdE dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 28/06/2007, 16h18
  2. boucle imbriquée
    Par zhoom dans le forum C
    Réponses: 4
    Dernier message: 07/11/2005, 13h10
  3. [Débutant]Boucle imbriquée avec des bornes différentes
    Par Hayato dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/08/2005, 16h23
  4. Boucles imbriquées
    Par Immobilis dans le forum ASP
    Réponses: 28
    Dernier message: 14/01/2005, 13h17
  5. [XSL]boucle imbriquée avec condition
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/01/2005, 14h19

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