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

Autres IDE Pascal Discussion :

Exception lors de l'exécution programme équation 2nd degré [Virtual Pascal]


Sujet :

Autres IDE Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Exception lors de l'exécution programme équation 2nd degré
    Bonjour/bonsoir,

    J'utilise virtual pascal. Je dois faire un programme capable de résoudre une équation du second degré, le programme fonctionne tres bien pour la résolution sauf pour 2 cas

    dans le cas où les coefficient sont tous égales à zero il me met bien que la solution pour X= l'ensemble R (équation indéterminée) mais au lieu de me proposer de recommencer une nouvelle résolution il m'affiche une erreur :

    exception
    XCPT_FLOAT_INVALID_OPERATION
    (C0000090 at 004011F0, TID = 03F0

    dans le cas où les coefficients A=0 , B=0 et C different de zero meme schéma sauf que l'erreur change

    exception XCPT_FLOAT_DIVIDE_BY_ZERO
    (C000008E) at 004011F0, TID = 1548


    Pourriez-vous m'aider car je suis totalement perdu je ne vois pas pourquoi il me fait ça !!!

    D'avance je vous en remercie!!!

    Voici le programme:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    program CAPRJ001;
    uses crt;
    var A,B,C,DELTA,x1,x2:real;
        R:char;
     
    begin
        repeat
            clrscr;
            writeln('Equation du second degre');
            writeln('==========================');
            writeln('Entrez une valeur de A');
            readln(A);
            writeln('Entrez une valeur de B');
            readln(B);
            writeln('Entrez une valeur de C');
            readln(C);
            writeln(A:8:3,'Xý+',B:8:3 ,'X+',C:8:3,'=0');
            writeln('==========================');
     
     
     
                 if A=0
                    then
                       begin
                           if B=0
                              then
                                 begin
                                     if C=0
                                        then
                                           writeln('X= ensemble R')
                                     else
                                        writeln('Pas de solution')
                                     end
     
                           else
                              writeln('Equation du premier degre');
                              writeln('=========================');
                              writeln('X=',-C/B:8:3);
                           end
     
     
                 else
                    begin
     
                        DELTA:=sqr(B)-4*A*C;
     
                        if DELTA<0
                             then
                                begin
                                    writeln('Racines complexes');
                                    writeln('=================');
                                    x1:=-B/(2*A);
                                    x2:=sqrt(-DELTA/(2*A));
                                    writeln('X1=',x1:8:3,'+',x2:8:3,'i');
                                    writeln('X2=',x1:8:3,'-',x2:8:3,'i');
                        end;
     
                        if DELTA=0
                             then
                                begin
                                    writeln('Racine double');
                                    writeln('=============');
                                    x1:=-B/(2*A);
                                    writeln('X=',x1:8:3);
                        end;
     
                        if DELTA>0
                             then
                                begin
                                    writeln('Racines reelles');
                                    writeln('===============');
                                    x1:=(-B+sqrt(DELTA))/(2*A);
                                    x2:=(-B-sqrt(DELTA))/(2*A);
                                    writeln('X1=',x1:8:3);
                                    writeln('X2=',x2:8:3);
                        end;
                 end;
     
        writeln('=========================');
        writeln('Voulez vous recommencer ? <O/N>');
        readln(R);
        until (R='N') or (R='n');
     
    end.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Kei,

    Tu as probablement mal délimité tes blocs begin...end ?

    (c'est une erreur fréquente )
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Re,

    J'ai revérifier ce n'est pas le cas ou j'ai peu être louper un truc

  4. #4
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Déjà si tu nous recollais ton code en n'oubliant pas de l'encadrer avec des balises [code] ... [/code] (bouton #), ça rendrait les choses plus lisibles, parce que là...

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut

    Voilà c'est fait, désolé, j'avais pas vu que l'option est disponible

  6. #6
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Eh oui ! Il manque un begin..end !

    Du coup, il peut se déclencher une division par zéro.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    program CAPRJ001;
    uses crt;
    var A,B,C,DELTA,x1,x2:real;
        R:char;
     
    begin
        repeat
            clrscr;
            writeln('Equation du second degre');
            writeln('==========================');
            writeln('Entrez une valeur de A');
            readln(A);
            writeln('Entrez une valeur de B');
            readln(B);
            writeln('Entrez une valeur de C');
            readln(C);
            writeln(A:8:3,'Xý+',B:8:3 ,'X+',C:8:3,'=0');
            writeln('==========================');
     
     
     
                 if A=0
                    then
                       begin
                           if B=0
                              then
                                 begin
                                     if C=0
                                        then
                                           writeln('X= ensemble R')
                                     else
                                        writeln('Pas de solution')
                                     end
     
                           else
                           begin
                              writeln('Equation du premier degre');
                              writeln('=========================');
                              writeln('X=',-C/B:8:3);
                           end
                       end
     
     
                 else
                    begin
     
                        DELTA:=sqr(B)-4*A*C;
     
                        if DELTA<0
                             then
                                begin
                                    writeln('Racines complexes');
                                    writeln('=================');
                                    x1:=-B/(2*A);
                                    x2:=sqrt(-DELTA/(2*A));
                                    writeln('X1=',x1:8:3,'+',x2:8:3,'i');
                                    writeln('X2=',x1:8:3,'-',x2:8:3,'i');
                        end;
     
                        if DELTA=0
                             then
                                begin
                                    writeln('Racine double');
                                    writeln('=============');
                                    x1:=-B/(2*A);
                                    writeln('X=',x1:8:3);
                        end;
     
                        if DELTA>0
                             then
                                begin
                                    writeln('Racines reelles');
                                    writeln('===============');
                                    x1:=(-B+sqrt(DELTA))/(2*A);
                                    x2:=(-B-sqrt(DELTA))/(2*A);
                                    writeln('X1=',x1:8:3);
                                    writeln('X2=',x2:8:3);
                        end;
                 end;
     
        writeln('=========================');
        writeln('Voulez vous recommencer ? <O/N>');
        readln(R);
        until (R='N') or (R='n');
     
    end.

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hai,
    Citation Envoyé par CapJack Voir le message
    Eh oui ! Il manque un begin..end !

    Du coup, il peut se déclencher une division par zéro.
    C'est précisément pour ça, qui m'avait littéralement sauté aux yeux, que j'avais suggéré une mauvaise délimitation des blocs.

    Et je voulais que Sexyjulo trouve tout seul.
    Si les cons volaient, il ferait nuit à midi.

  8. #8
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Grand merci à vous !!!! Honte à moi !!!!

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Xeo,
    Citation Envoyé par Sexyjulo Voir le message
    Grand merci à vous !!!! Honte à moi !!!!
    Bah, nous sommes tous passés par là, et ça arrive à tout le monde, même quand on est confirmé (il est toujours beaucoup plus difficile de trouver ses propres erreurs que celles des autres, ce n'est pas pour rien que pour avoir une bonne correction dans un rapport, document..., on enchaîne les relectures avec différentes personnes).
    Si les cons volaient, il ferait nuit à midi.

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

Discussions similaires

  1. [Hudson] exception lors de l'exécution de tests unitaires nunit
    Par Kalisto44 dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 14/04/2011, 11h40
  2. Exception ou erreur 104 lors de l'exécution d'un programme
    Par RahmaZayoud dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 22/05/2010, 15h40
  3. Exception lors de l'exécution
    Par Fl.oz45 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 17/03/2009, 14h48
  4. exception lors de l'exécution d'un test d'application
    Par caro_caro dans le forum SWT/JFace
    Réponses: 6
    Dernier message: 10/12/2008, 12h47
  5. Exception lors de l'exécution d'une application RCP
    Par bricelaurel dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 21/10/2008, 16h06

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