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 :

Erreur programme résolution équations 2nd degrées F90


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    technicien BE
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien BE
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Erreur programme résolution équations 2nd degrées F90
    Bonjour,

    Je débute en programmation et j'obtiens l'erreur "cannot assign to a named constant" à la ligne 8, suivis de "unexpected junk after ELSE statement" pour les lignes 11 et 14.
    Je ne comprends pas bien ces erreurs, si quelqu'un pouvais m'expliquer, d'avance 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
    12
    13
    14
    15
    16
    17
    18
    program ResolutionEquationDegree2
     
    implicit none
    real :: a, b, c, raci1, raci2, raci0, delta
    read*, a, b, c
    delta = b**2-4*a*c
    print*,delta
       if (delta) > 0 then
       raci1=(-b-sqrt(delta))/2*a; raci2=(-b+sqrt(delta))/2*a
       print*,raci1, raci2
       elseif (delta) = 0 then
       raci0 = -b/2*a
       print*,raci0
       else (delta) < 0 then
       print*,"L'equation n'a pas de solution reel"
       endif
     
    end program ResolutionEquationDegree2
    Cordialement

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    C'est une erreur de syntaxe de ta part sur la façon d'écrire la condition: les parenthèses doivent englober le test que tu souhaites faire.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (delta > 0) then
    Par ailleurs, attention au test d'égalité, c'est "==" pas seulement "=" qui est l'opérateur d'affectation.

    Bonne continuation

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    technicien BE
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien BE
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci à toi, mon programme fonctionne mais j'ai du changer le dernier "else" par un "elseif" sinon j'obtenais une erreur.

    Cordialement

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    étudiant ingénieur génie des procédés
    Inscrit en
    Mars 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : étudiant ingénieur génie des procédés

    Informations forums :
    Inscription : Mars 2018
    Messages : 20
    Points : 34
    Points
    34
    Par défaut ERREUR SYNTAXE
    Salut à toi,

    la syntaxe de ton if else est pas bonne, tu devrais le rédiger comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (condition1 vrai) then
       action 1
    elseif (condition2 vrai) then
       action 2
    ...
    else
       action restante
    endif

    et rien devant un else tout seul!!

    bonne continuation!

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    technicien BE
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : technicien BE
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Effectivement je m'en suis rendu compte entre temps pour la syntaxe de else et de elseif, merci à toi

    Voici le code si ça peut intéresser :

    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
    program ResolutionEquationDegree2
     
    implicit none
    real :: a, b, c, raci1, raci2, raci0, delta, comp1, comp2
    print*,"Resolveur d'equation du 2nd degree :"
    print*,"Donnez les valeurs de a, b et c"
    print*, "a ="; read*, a
    print*, "b ="; read*, b
    print*, "c ="; read*, c
    delta = b**2-4*a*c
    print*,"delta =", delta
       if (delta > 0) then
       raci1=(-b-sqrt(delta))/2*a; raci2=(-b+sqrt(delta))/2*a
       print*,"solution x1 =", raci1, "solution x2 =", raci2
       elseif (delta == 0) then
       raci0 = -b/2*a
       print*,"solution x0 =", raci0
       else
       print*,"L'equation n'a pas de solutions reeles"
       comp1=(-b-sqrt(-delta))/2*a; comp2=(-b+sqrt(-delta))/2*a
       print*,"solution complexe x1 =", comp1,"solution complexe x2 =", comp2
       endif
     
    end program ResolutionEquationDegree2

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 103
    Points : 1 035
    Points
    1 035
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ZosoZozo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    program ResolutionEquationDegree2
    ...
       raci1=(-b-sqrt(delta))/2*a; raci2=(-b+sqrt(delta))/2*a
    ...
       raci0 = -b/2*a
    ...
       comp1=(-b-sqrt(-delta))/2*a; comp2=(-b+sqrt(-delta))/2*a
    ...
    Bonjour,

    attention à la priorité des opérateurs !

    Il faut écrire et non pas Ca ne donne pas du tout la même chose...

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/09/2013, 01h23
  2. résolution équation 1er degré
    Par grigri2407 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 08/04/2010, 11h03
  3. [Virtual Pascal] Exception lors de l'exécution programme équation 2nd degré
    Par Sexyjulo dans le forum Autres IDE
    Réponses: 8
    Dernier message: 11/11/2008, 20h40
  4. [VBA-E] Définition et résolution d'équation 3ième degré
    Par lucky-luc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2007, 16h01
  5. résolution de equation 2nd degré
    Par isidore dans le forum C
    Réponses: 30
    Dernier message: 29/02/2004, 10h46

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