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] Boucle avec condition


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 [Fortran 77] Boucle avec condition
    Bonjour,
    Desolé pour cette question, mais je n'arrive pas à mettre une boucle avec une condition.

    J'ai un tableau A(i,j) , et supposons que je doive calculer la somme de ces éléments sauf pour i et j différents de l et k respectivement (l et k sont fixés). J'ai pensé a faire un do while, mais le problème est : qu'est-ce que je dois mettre dans le do while ?
    Merci de me clarifier un peu la chose.

  2. #2
    Membre habitué Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 192
    Points
    192
    Par défaut
    Soit ton tableau A(dim1, dim2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    somme = 0
    do i = 1, dim1
    do j = 1, dim2
       if (i ==k .and. j == l) somme = somme + a(i,j)
    end do
    end do

  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
    ya pas de then dans ton if ou endif , de plus c est de f77

  4. #4
    Membre habitué Avatar de Grame
    Profil pro
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 192
    Points
    192
    Par défaut
    ya pas de then dans ton if ou endif , de plus c est de f77
    THEN et END IF ne sont pas nécessaires si il y a une seule instruction.

    De plus ce n'est PAS du f77.
    en f77, j'aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          somme = 0
          do 10 i = 1, dim1
          do 10 j = 1, dim2
          if (i .eq. k .and. j .eq. ll) somme = somme + a(i,j)
    10   continue

  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
    ok merci

  6. #6
    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 feynman Voir le message
    ...calculer la somme de ces elements sauf pour i et j differents de l et k respectivement (l et k sont fixés)...
    La négation (sauf) de différents, ça ne veut pas dire égales ? Auquel cas la somme est égale à A(l,k)...

    En supposant que tu voulais dire « somme pour i et j différents », il faut faire comme l'a écrit Grame, mais en F77, comme tu le souligne, et en inversant la condition du if. À part ça, le if est OK; le then n'apparait pas parce que ce n'est pas la même forme de if. Bien que ça soit moins intuitif, le programme serait plus performant si tu initialisais la somme à -A(l,k) puis que tu enlevais la condition de la boucle parce que les branchements dans les boucles nuisent à l'optimisation de ces dernières (pipelining, unrolling, ...).

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

Discussions similaires

  1. boucle avec condition à la fin
    Par PC81 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2008, 16h12
  2. boucles avec conditions pour faire un suivi
    Par lilyla dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/03/2008, 11h53
  3. Boucle avec condition
    Par sl1980 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/08/2007, 20h24
  4. Boucle avec condition "perdu"
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2007, 10h38
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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