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 Pascal Discussion :

[LG]floation point overflow


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 8
    Points
    8
    Par défaut [LG]floation point overflow
    voici présisemment mon probleme que je n'arrive pas à remédier. J'ai c message ( voir le sujet) alors que normalement, les nombres manier sont dans la norme.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Sans un morceau de code, il sera difficile de trouver la cause de cette erreur. Est-ce que tu effectues des opérations sur des variables de plusieurs types (par exemple, des Real avec des LongInt) ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Regarde l'aide...
    Remplace tes variables réelles par des extended et n'oublie pas d'émuler le coprocesseur arithmétique ( directive de compilation {$N+} )...

    a+

    PS : désolé ça m'a échappé....
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    mais ça aussi g essayé, mais le problème persiste...
    oups decidemment

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    ha oui, pour la formule. En gros c'est ça.
    repeat
    x:=x*r*(1-x);
    avec chaque variable qui sont de type extended.
    [/code]

  6. #6
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Donne le reste du code ( autour de la formule ), et la façon dont tu l'appelles si c'est une procédure ou une fonction...
    Et utilise la balise "code"....

    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Obtenir ce genre d'erreur avec des variables de types extended est assez difficile car elles peuvent stocker des nombres très importants...
    Quel est le genre de nombres que tu y stockes ?
    Si ce sont des nombres pas très "grands", il vaut mieux utiliser les types simple et double ( un peu plus "compatibles" )...
    L'erreur semble venir du fait que si l'on multiplie des valeurs extended qui sont déjà très grandes ( ou très petites, avec beaucoup de décimales ) et que l'on stocke le résultat dans un extended, il y a de très fortes chances pour que le nombre obtenu dépasse...
    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  8. #8
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Le type Extended stocke des nomrbes très grands, mais si on lui offre un petit infini, Turbo Pascal tire la langue...

    Vérifie donc pednant que tu y es que tu n'as pas de division par zéro à quelque part. Quand je dis division par zéro, ce n'est pas forcément "zéro". Ca peut très bien être un nombre extrèmement petit.

    Ta formule est : x := x * r * (1 - x);

    Vérifie donc que x, ou bien 1 - x ne soit pas trop grand. Et essaie aussi par la même occasion de couper tes calculs en morceaux plus petits : ça peut aider.

    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    x := x * r;
    z := 1 - x;
    x := x * z;
    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    ok merci beaucoup, je crois que c'est ça : x était trop grand

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/04/2013, 07h19
  2. floating point overflow : mediainfo
    Par inspecteur rick dans le forum Débuter
    Réponses: 1
    Dernier message: 22/12/2008, 22h00
  3. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51
  4. Réponses: 3
    Dernier message: 12/06/2002, 19h03
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 18h14

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