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

Langage Delphi Discussion :

Probléme de débordement en virgule flottante


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut Probléme de débordement en virgule flottante
    Bonjour, lorsque j'execute mon programme j'ai le message d'erreur "Débordement en virgule flottante". Voilà la partie du code qui pose probléme.
    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
    function TForm1.isDrawable(a:Double;b:Double):Boolean;
    var
    z:complexe;
    c:complexe;
    l:Integer;
    begin
      z.a := 0;
      z.b := 0;
      c.a := a;
      c.b := b;
      for l := 0 to 25 do begin
      z.a := (z.a * z.a)-(z.b * z.b);
      z.b :=2*(z.a * z.b);
      z.a := z.a + c.a;
      z.b := z.b + c.b;
        if ( z.a*z.a + z.b*z.b)>4 then begin
          Result := False;
        end
        else begin
        Result := True;
        end;
      end;
    //  Result := True;
    end;
    Et voilà la partie du code qui utilise cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      for i:= 0 to iter do begin
          for j:=0 to iter do begin
            if isDrawable(i/iter,j/iter)=True then begin
            Draw(i,j);
            end;
          end;
      end;
    La variable de type complexe est une structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     type
      complexe = record
      a:Double;
      b:Double;
     end;
    J'ai essayer de mettre Extended à la place de Double mais sa ne marche pas non plus.
    Merci pour votre aide

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    Salut

    A quelle ligne ca plante?

    Ca permettrait de cerner plus rapidement le probleme...

  3. #3
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Salut,
    si je ne me trompe pas, faut reserver de la memoire pour
    ton Type complex: New(complexe)

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    New(complexe) ne s'applique-t-il pas uniquement pour les pointeurs???
    et complexe n'est pas un type de pointeur non?

  5. #5
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Tu esseye de deboger(Pas a Pas), et la tu peux voir si vraiment ya un debordement?!!!

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par blaiseac
    Salut

    A quelle ligne ca plante?

    Ca permettrait de cerner plus rapidement le probleme...
    A la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      z.a := (z.a * z.a)-(z.b * z.b);

  7. #7
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    De toute les facons, je trouve bizare que tu na pas fais de Break dans ta fonction: isDrawable

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Merci pour le Break !! Depuis que je l'ai rajouté sa marche.

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

Discussions similaires

  1. débordement en virgule flottante
    Par eclipse2007 dans le forum C++
    Réponses: 2
    Dernier message: 27/04/2009, 19h45
  2. Erreur débordement en virgule flottante
    Par houred dans le forum Débuter
    Réponses: 5
    Dernier message: 30/06/2008, 09h08
  3. "Débordement en virgule flottante"
    Par Tchaill39 dans le forum Delphi
    Réponses: 7
    Dernier message: 23/03/2007, 14h38
  4. Débordement en virgule flottante
    Par kurul1 dans le forum OpenGL
    Réponses: 8
    Dernier message: 19/01/2006, 10h50
  5. [D7] Problème de virgule flottante
    Par Magnus dans le forum Langage
    Réponses: 17
    Dernier message: 22/09/2005, 15h56

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