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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    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 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Kei,

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

    (c'est une erreur fréquente )

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    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 émérite
    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
    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
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    Salut

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

  6. #6
    Membre émérite
    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
    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.

+ 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, 12h40
  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, 16h40
  3. Exception lors de l'exécution
    Par Fl.oz45 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 17/03/2009, 15h48
  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, 13h47
  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, 17h06

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