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

  FORUM HardWare.fr
  Programmation
  C++

  N'arrive pas à faire un calcul en c++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

N'arrive pas à faire un calcul en c++

n°1139662
dorianhawk​moon
Posté le 04-07-2005 à 18:29:13  profilanswer
 

Bonsoir,
voila mon problème, je programme sous borland c++ builder, et je n'arrive pas à faire marcher un calcul, voici le code:

Code :
  1. if ((dev==0)||((dev==1)&&(atan(pte)*180/PI<=45))) {
  2.         switch(nbre_face_feu){
  3.                 case'1':epf=ep-dxf*tf*0;htf=ht-dxf*tf*1.6;break;
  4.                 case'2':epf=ep-dxf*tf*1;htf=ht-dxf*tf*1.6;break;
  5.                 case'3':epf=ep-dxf*tf*2;htf=ht-dxf*tf*1.6;break;
  6.                 case'4':epf=ep-dxf*tf*2;htf=ht-dxf*tf*2.3;break;
  7.                 }
  8.                 }
  9. if ((dev==1)&&(atan(pte)*180/PI>45)) {
  10.         switch(nbre_face_feu){
  11.                 case'1':epf=ep-dxf*tf*0;htf=ht-dxf*tf*1;break;
  12.                 case'2':epf=ep-dxf*tf*1.6;htf=ht-dxf*tf*1;break;
  13.                 case'3':epf=ep-dxf*tf*2.3;htf=ht-dxf*tf*1;break;
  14.                 case'4':epf=ep-dxf*tf*2.3;htf=ht-dxf*tf*2;break;
  15.                 }
  16.                 }
  17. cxyfn=(1.1*cxcp+0.8*cxsn)*ep*ep/epf/epf+(1.1*cycp+0.8*cysn)*ht*ht/htf/htf;
  18. cxyfv=(1.1*cxcp+0.8*cxsv)*ep*ep/epf/epf+(1.1*cycp+0.8*cysv)*ht*ht/htf/htf;


arrivé au deux dernière ligne, le programme plante pour cause de division par zéro. Il n'enregistre pas les variable epf et htf.
 
Merci de m'aider
DorianHawkmoon

mood
Publicité
Posté le 04-07-2005 à 18:29:13  profilanswer
 

n°1139677
Taz
bisounours-codeur
Posté le 04-07-2005 à 19:00:40  profilanswer
 

t'as qu'à pas faire de division par 0. Et aère un peut ton code.

n°1139678
LordHarryP​otter
Posté le 04-07-2005 à 19:01:22  profilanswer
 

dorianhawkmoon a écrit :

Bonsoir,
voila mon problème, je programme sous borland c++ builder, et je n'arrive pas à faire marcher un calcul, voici le code:

Code :
  1. if ((dev==0)||((dev==1)&&(atan(pte)*180/PI<=45))) {
  2.         switch(nbre_face_feu){
  3.                 case'1':
  4.                   epf=ep-dxf*tf*0; // heu 0*qch = 0 ;)
  5.                   htf=ht-dxf*tf*1.6;
  6.                   break;
  7.                 case'2':epf=ep-dxf*tf*1;htf=ht-dxf*tf*1.6;break;
  8.                 case'3':epf=ep-dxf*tf*2;htf=ht-dxf*tf*1.6;break;
  9.                 case'4':epf=ep-dxf*tf*2;htf=ht-dxf*tf*2.3;break;
  10.                 }
  11.                 }
  12. if ((dev==1)&&(atan(pte)*180/PI>45)) {
  13.         switch(nbre_face_feu){
  14.                 case'1':
  15.                     epf=ep-dxf*tf*0; // idem
  16.                     htf=ht-dxf*tf*1;
  17.                     break;
  18.                 case'2':epf=ep-dxf*tf*1.6;htf=ht-dxf*tf*1;break;
  19.                 case'3':epf=ep-dxf*tf*2.3;htf=ht-dxf*tf*1;break;
  20.                 case'4':epf=ep-dxf*tf*2.3;htf=ht-dxf*tf*2;break;
  21.                 }
  22.                 }
  23. cxyfn=(1.1*cxcp+0.8*cxsn)*ep*ep/epf/epf+(1.1*cycp+0.8*cysn)*ht*ht/htf/htf;
  24. cxyfv=(1.1*cxcp+0.8*cxsv)*ep*ep/epf/epf+(1.1*cycp+0.8*cysv)*ht*ht/htf/htf;


arrivé au deux dernière ligne, le programme plante pour cause de division par zéro. Il n'enregistre pas les variable epf et htf.
 
Merci de m'aider
DorianHawkmoon


 
Oui aère ton code et puis les divisuer peuvent très bien etre égale à 0 de plus ton programme (enfin les switch ne font rien si tes entier sont différent de 1, 2 , 3 ou 4 : ne te manque t il pas des default ?


Message édité par LordHarryPotter le 04-07-2005 à 19:03:35
n°1139685
theredled
● REC
Posté le 04-07-2005 à 19:05:31  profilanswer
 

je pense qu'il faudrait un peu plus de détail sur les variables (types valeurs) de ton prog si tu veux de l'aide, paske là...
 
a priori soit epf = 0 soit hpf = 0  :bounce: merci qui ?

n°1139688
Taz
bisounours-codeur
Posté le 04-07-2005 à 19:06:57  profilanswer
 

moi je dis que c'est les case qui sont foireux et résultat, par hasard epf et hpf sont à 0

n°1139690
theredled
● REC
Posté le 04-07-2005 à 19:11:55  profilanswer
 

ep = 0 peut etre?

n°1139792
Carbon_14
Posté le 04-07-2005 à 21:33:21  profilanswer
 

(atan(pte)*180/PI<=45)) c'est bon ? Pas de pb à mélanger float/double et entier (45) pour la comparaison ?
 
nbre_face_feu, il peut prendre quelles valeurs ? 1, 2, 3, 4 seulement ?

n°1139985
dorianhawk​moon
Posté le 05-07-2005 à 08:10:21  profilanswer
 

nbre_face_feu ne peu prendre que 1,2,3ou 4.
les variabbles sont toutes de type float, sauf dev qui est un int qui ne prend les valeur que 1,2 ou 3 -la partie 3 n'est pas présente-.
j'ai aussi essayé en utilisant des if à la place des switch case, mais ca ne marche pas non plus...

n°1140012
Taz
bisounours-codeur
Posté le 05-07-2005 à 09:28:30  profilanswer
 

'1', '2' ...
 
fout un default a tes switch et regarde ce qu'il se passe.

n°1140023
LordHarryP​otter
Posté le 05-07-2005 à 09:40:32  profilanswer
 

utilise le débugueur ou des cout, ou des print pour voir où va ton programme

mood
Publicité
Posté le 05-07-2005 à 09:40:32  profilanswer
 

n°1140674
dorianhawk​moon
Posté le 05-07-2005 à 16:43:11  profilanswer
 

J'ai rajouter un default, et ca marche.
Merci beaucoup Taz ^______^

n°1141110
Taz
bisounours-codeur
Posté le 05-07-2005 à 18:02:03  profilanswer
 

donc tout passe dans ton default ... vire le switch alors ..


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

  N'arrive pas à faire un calcul en c++

 

Sujets relatifs
calcul du temps processeurtableau: calcul en live de valeur d'un cellule
easy php j arrive pas a demarrer mon server sql[PHP] je n'arrive pas à faire fonctionner Apache
Calcul du taux de charge d'un serveurplease help me : j arrive pas a lancer Mysql
Creer et renommer une nouvelle feuille de calculcalcul matriciel en C
Calcul / Variable!J'arrive pas à affiche ma table sous datagrid
Plus de sujets relatifs à : N'arrive pas à faire un calcul en c++


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