Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1807 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problème de calcul de Delta

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de calcul de Delta

n°1886225
JM12345
Posté le 19-05-2009 à 18:06:24  profilanswer
 

Bonjour,

 

J'ai un bug que je n'arrive pas à corriger car ce n'est pas mon code à la base.

 

Voilà le problème :

 

J'ai un opérateur Delta qui calcule la différence entre 2 valeurs consécutives d'un paramètre FRAME qui incrémente de 1 à chaque fois.
Le problème est que si je calcule le résultat des 2 paramètres a et b :
A = (+ (DELTA FRAME) (DELTA FRAME)(DELTA FRAME))
B = (DELTA (+ FRAME FRAME FRAME))

 

Le problème est que lorsque je lance mon programme :

 

J'obtient :
FRAME=0 ; a=X ; b=X    puis
FRAME=1 ; a=X ; b=3    puis
FRAME=2 ; a=X ; b=3    puis
FRAME=3 ; a=3 ; b=3  

 

La question est : Pourquoi l'écriture du paramètre A a besoin de 3 incrémentations du FRAME pour donner un résultat alors que le paramètre B non ?

 


Voilà le code en question:

Code :
  1. double Delta::evalue(DecomBoolean temps_reel, unsigned char& erreur)
  2. {
  3.  double valeur;
  4.  double result = 0;
  5.  
  6.  valeur= argument->evalue(temps_reel, erreur);
  7.  /*  on sélectionne les variables concernées */
  8.  if (IsRealTime(temps_reel))
  9.    traitement_d(ancienne_erreur, ancienne_valeur, valeur, result, erreur);
  10.  else
  11.    traitement_d(ancienne_erreurdiff, ancienne_valeurdiff, valeur, result, erreur);
  12.  return result;
  13. }
  14.  
  15.  
  16. void traitement_d(int& une_erreur, double& une_valeur, double& valeur, double& result, unsigned char& erreur)
  17. {
  18.  if (erreur == 0)
  19.    {
  20.      if (une_erreur == 0)
  21.     /*  si il n'y a pas d'erreur cette fois ci et la fois précédente  */
  22.     result = valeur - une_valeur;
  23.      else
  24.     {
  25.       /*  si le traitement précédent était invalide  */
  26.       une_erreur= 0;
  27.       erreur= 1;
  28.     }
  29.      une_valeur= valeur;
  30.    }
  31.  else
  32.    une_erreur= 1;
  33. }
  34.  
  35.  
  36. void calcule(unsigned char& erreur, TArbre p, double& resultat, double temp, DecomBoolean temps_reel)
  37. {
  38.  if (erreur == 0)
  39.    {
  40.      temp= p->evalue(temps_reel, erreur);
  41.      if (erreur == WITHOUT_ERROR)
  42.         resultat= resultat + temp;
  43.      else
  44.         resultat= 0;
  45.    }
  46. }
  47.  
  48. const char *Somme::ClassName()
  49. {return "TSomme";}
  50.  
  51.  
  52. double Somme::evalue(DecomBoolean temps_reel, unsigned char& erreur)
  53. {
  54.  double resultat;
  55.  double temp=0;
  56.  int i;
  57.  double result = 0;
  58.  
  59.  resultat= 0;
  60.  
  61.  for (i= 0;(i <= (arguments->Count - 1));i++)
  62.    calcule(erreur, TArbre(arguments->items(i)), resultat, temp, temps_reel);
  63.  if (erreur == WITHOUT_ERROR)
  64.    result= resultat;
  65.  else
  66.    result= 0;
  67.  
  68.  return result;
  69. }
 

Merci bien d'avance pour toute l'aide que vous pouvez m'apporter

 


Édité par Elmoricq : ajout des balises code


Message édité par Elmoricq le 20-05-2009 à 08:12:14
mood
Publicité
Posté le 19-05-2009 à 18:06:24  profilanswer
 

n°1886240
theshockwa​ve
I work at a firm named Koslow
Posté le 19-05-2009 à 18:44:48  profilanswer
 

tu peux utiliser les balises cpp pour que ton code soit coloré, ce sera plus sympa pour la relecture


Message édité par theshockwave le 19-05-2009 à 18:44:58

---------------
last.fm
n°1886319
Elmoricq
Modérateur
Posté le 20-05-2009 à 08:21:13  profilanswer
 

[:psychokwak]

 

Là comme ça, ça ne semble avoir ni queue ni tête. Ça fait plein de trucs, on sait pas trop quoi, avec un million de variables dont on ne sait rien (et une gestion d'erreur semble-t-il très TDWTF-ienne). Et la fonction qui imprime les lignes que tu indiques, qui aurait pu nous aider, est absente du code posté.

 

Bref : je passe.

 

edit : c'est du C++Builder ?


Message édité par Elmoricq le 20-05-2009 à 08:22:37

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problème de calcul de Delta

 

Sujets relatifs
probleme javascript et php model mvcprobleme avec 2 mysql_fetch_assoc dans une seule while
probleme urgentProbleme ajax listes liées
Problème de tracé d'un histogrammeProblème menu
probleme chargement swfProblème gestion des erreurs
problème lors de l'execution/ source pas OK ^^"Problème pour écrire dans ma BDD
Plus de sujets relatifs à : Problème de calcul de Delta


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR