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

  FORUM HardWare.fr
  Programmation
  C++

  switch...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

switch...

n°1386786
baleine2
Posté le 13-06-2006 à 17:07:00  profilanswer
 

bonjour,  
 
j'ai un petit souci avec le codage d'un switch, je sais c'est bateau, mais j'ai du mal....
voici mon code:
 
 

Code :
  1. UpdateData(true);
  2. m_Alfa=m_Coef_Flou.GetCurSel();
  3. switch(m_Alfa)
  4. {
  5. case 0 :
  6.  m_Alfa = 0.1;
  7. case 1 :
  8.  m_Alfa = 0.2;
  9. case 2 :
  10.  m_Alfa = 0.3;
  11. case 3 :
  12.  m_Alfa = 0.4;
  13. case 4 :
  14.  m_Alfa = 0.5;
  15. case 5 :
  16.  m_Alfa = 0.6;
  17. case 6 :
  18.  m_Alfa = 0.7;
  19. case 7 :
  20.  m_Alfa = 0.8;
  21. case 8 :
  22.  m_Alfa = 0.9;
  23. }
  24. UpdateData(false);


 
Sachant que j'essaie d'utiliser une combo box, et d'en récupérer les valeurs....
m_Coef_Flou est ma combo box, et m_Alfa est ma variable qui va contenir la valeur sélectionnée dans ma combo box
 
merci pour votre aide

mood
Publicité
Posté le 13-06-2006 à 17:07:00  profilanswer
 

n°1386793
_darkalt3_
Proctopathe
Posté le 13-06-2006 à 17:09:51  profilanswer
 

c'est quoi qui va pas ?

n°1386799
masklinn
í dag viðrar vel til loftárása
Posté le 13-06-2006 à 17:13:02  profilanswer
 

baleine2 a écrit :

bonjour,  
 
j'ai un petit souci avec le codage d'un switch, je sais c'est bateau, mais j'ai du mal....
voici mon code:
 
 

Code :
  1. UpdateData(true);
  2. m_Alfa=m_Coef_Flou.GetCurSel();
  3. switch(m_Alfa)
  4. {
  5. case 0 :
  6.  m_Alfa = 0.1;
  7. case 1 :
  8.  m_Alfa = 0.2;
  9. case 2 :
  10.  m_Alfa = 0.3;
  11. case 3 :
  12.  m_Alfa = 0.4;
  13. case 4 :
  14.  m_Alfa = 0.5;
  15. case 5 :
  16.  m_Alfa = 0.6;
  17. case 6 :
  18.  m_Alfa = 0.7;
  19. case 7 :
  20.  m_Alfa = 0.8;
  21. case 8 :
  22.  m_Alfa = 0.9;
  23. }
  24. UpdateData(false);


 
Sachant que j'essaie d'utiliser une combo box, et d'en récupérer les valeurs....
m_Coef_Flou est ma combo box, et m_Alfa est ma variable qui va contenir la valeur sélectionnée dans ma combo box
 
merci pour votre aide


C'est quoi l'intérêt d'un switch là?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1386806
SomeBugsIn​Me
life suxx
Posté le 13-06-2006 à 17:17:12  profilanswer
 

Code :
  1. m_Alfa = 0.1 + m_Alfa/10.0;

[:petrus75]
 
et de toutes façon il manque les break dans le switch


Message édité par SomeBugsInMe le 13-06-2006 à 17:17:56
n°1386810
franceso
Posté le 13-06-2006 à 17:18:44  profilanswer
 

mets des 'break' à la fin de chaque cas.
 
sinon, Masklinn a raison : il n'est pas très intéressant de mettre un switch : tu pourrais avantageusement remplacer tout ça par m_alfa = 0.1*(m_alfa+1.)
 
EDIT: grillé

Message cité 1 fois
Message édité par franceso le 13-06-2006 à 17:19:45

---------------
TriScale innov
n°1386845
baleine2
Posté le 13-06-2006 à 17:45:25  profilanswer
 

Merci pour toutes vos réponses, c'est cool, je prend note de vos remarques.

n°1386867
Sve@r
Posté le 13-06-2006 à 18:47:28  profilanswer
 

C'est un topic typiquement C, pas C++ !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1387056
Ace17
Posté le 14-06-2006 à 00:13:03  profilanswer
 

Ouais, bon, tout le monde ne passe pas forcement par le C non plus, hein?

n°1387664
Sve@r
Posté le 14-06-2006 à 17:37:03  profilanswer
 

franceso a écrit :

tu pourrais avantageusement remplacer tout ça par m_alfa = 0.1*(m_alfa+1.)


Dommage de faire l'addition de deux "int" en précision "double" => vaut mieux écrire m_alfa = 0.1*(m_alfa+1)

Message cité 2 fois
Message édité par Sve@r le 14-06-2006 à 17:37:50

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1387715
skelter
Posté le 14-06-2006 à 19:53:02  profilanswer
 

Sve@r a écrit :

Dommage de faire l'addition de deux "int" en précision "double" => vaut mieux écrire m_alfa = 0.1*(m_alfa+1)


 
et meme (vu que m_alfa est affecté par une expression dans laquelle il intervient)
m_alfa = 0.1 * ++m_alfa;
pour eviter la creation d'un temp

mood
Publicité
Posté le 14-06-2006 à 19:53:02  profilanswer
 

n°1387733
masklinn
í dag viðrar vel til loftárása
Posté le 14-06-2006 à 20:18:34  profilanswer
 

skelter a écrit :

et meme (vu que m_alfa est affecté par une expression dans laquelle il intervient)
m_alfa = 0.1 * ++m_alfa;
pour eviter la creation d'un temp


Ce genre de conneries c'est le meilleur moyen de se préparer des bugs planqués [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1387735
++fab
victime du syndrome IH
Posté le 14-06-2006 à 20:21:02  profilanswer
 

Sve@r a écrit :

Dommage de faire l'addition de deux "int" en précision "double" => vaut mieux écrire m_alfa = 0.1*(m_alfa+1)


?
m_alpha est probablement un flotant. C'est alors 1 (de type int) qui est converti en un flotant du type de m_alpha.

n°1387737
++fab
victime du syndrome IH
Posté le 14-06-2006 à 20:22:39  profilanswer
 

skelter a écrit :

et meme (vu que m_alfa est affecté par une expression dans laquelle il intervient)
m_alfa = 0.1 * ++m_alfa;
pour eviter la creation d'un temp


m_alpha est un entier ? (peu de chance)
 
edit: bof, même si m_alpha était un entier, ça ne changerait pas grand chose pour l'optimiseur.

Message cité 1 fois
Message édité par ++fab le 14-06-2006 à 20:30:17
n°1387741
skelter
Posté le 14-06-2006 à 20:29:15  profilanswer
 

++fab a écrit :

m_alpha est un entier ? (peu de chance)


 
oui c'est sans doute un reel, j'avais pas vu le source original

n°1387743
skelter
Posté le 14-06-2006 à 20:34:30  profilanswer
 

masklinn a écrit :

Ce genre de conneries c'est le meilleur moyen de se préparer des bugs planqués [:pingouino]


 
c'est surtout pas tres coherent, j'ai fait ca vite fais sans meme voir m_alpha est reel, mais connerie ou pas si je veux incrementer m_alpha puis le diviser par 10, je fais comme ca
m_alpha += 1;
m_alpha /= 10;

n°1387744
Tarabiscot​e
Posté le 14-06-2006 à 20:35:04  profilanswer
 

En même temps on fait rarement un switch avec un réel surtout si on le compare avec des entiers.

n°1387746
++fab
victime du syndrome IH
Posté le 14-06-2006 à 20:39:33  profilanswer
 

:D bien vu !

n°1387748
++fab
victime du syndrome IH
Posté le 14-06-2006 à 20:42:51  profilanswer
 

skelter a écrit :

mais connerie ou pas si je veux incrementer m_alpha puis le diviser par 10, je fais comme ca
m_alpha += 1;
m_alpha /= 10;


Moi aussi. Pas forcément pour faciliter la tache à l'optimiseur, mais plutot pour être le plus portable possible en ce qui concerne la précision numérique (l'ordre d'évaluation des paramètres est dépendant de l'implémentation, et cela affecte souvent la précision numérique lorsuqe l'on change d'implémentation).

n°1387752
skelter
Posté le 14-06-2006 à 20:51:18  profilanswer
 

l'ordre d'evaluation depend de l'implementation mais j'ai du mal a imaginer comment ca pourrait influencer sur la precision. t'aurais pas un exemple ?

n°1387761
++fab
victime du syndrome IH
Posté le 14-06-2006 à 21:08:01  profilanswer
 

Je pense à ceci :
 

Code :
  1. assert( std::numeric_limits<float>::digits10 == 6 );
  2. float f = 10 000f + 1f + 10 000 000f ;


 
ça, c'est plus sur :

Code :
  1. float f = 10000f + 1f;
  2. f += 10000000f;


n°1387774
skelter
Posté le 14-06-2006 à 21:20:28  profilanswer
 

merci, d'ailleur a propos de ce que j'ai mis plus haut
m_alfa = 0.1 * ++m_alfa;
 
c'est un UB

n°1387845
++fab
victime du syndrome IH
Posté le 14-06-2006 à 23:51:26  profilanswer
 

UB comme *Unspecified* Behaviour

mood
Publicité
Posté le   profilanswer
 


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

  switch...

 

Sujets relatifs
Preg_match dans un switchSWITCH
/RESOLU/ problème avec switch... lolProbleme de switch
question sur switchProbleme de syntaxe avec Switch case
Problème Switch Get Page & EasyPHPProblème avec switch - case.
besoin d'aide formulaire js switchQuestion a propos de "switch"
Plus de sujets relatifs à : switch...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)