CONVERTISSEUR DE 4 TYPES DE VARIABLES AVEC UN COMBOBOX

chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009 - 20 janv. 2009 à 00:17
chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009 - 21 janv. 2009 à 23:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49005-convertisseur-de-4-types-de-variables-avec-un-combobox

chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
21 janv. 2009 à 23:52
De rien.
Maintenant, nous pouvons effectuer quelques petites optimisations:

double d=0;

switch(jComboBox.getSelectedIndex()){

case 0: // si conversion du dollar vers dirham

d = Double.parseDouble(jTextField1.getText())*7.7;

break;

case 1: // si conversion du Kg vers pound

d=Double.parseDouble(jTextField1.getText())*0.45;

break;

case 2: // si conversion du metre vers mile

d=Double.parseDouble(jTextField1.getText())*1.6;

break;

case 3: // si conversion du °C vers °F

d=( 9 * Double.parseDouble(jTextField1.getText()) / 5 ) + 32;

break;

}


Puisque, dans les 3 premiere valeurs que peut prendre la valeur de jComboBox.getSelectedIndex(), il y a toujours une affectation du type
d=Double.parseDouble(jTextField1.getText()), alors nous pouvons écrire le code comme suit:


double d=Double.parseDouble(jTextField1.getText());

switch(jComboBox.getSelectedIndex()){

case 0: // si conversion du dollar vers dirham

d *= 7.7;

break;

case 1: // si conversion du Kg vers pound

d *= 0.45;

break;

case 2: // si conversion du metre vers mile

d *= 1.6;

break;

case 3: // si conversion du °C vers °F

d=( 9 * Double.parseDouble(jTextField1.getText()) / 5 ) + 32;

break;

}

Tu peux aussi optimiser l'autre structure switch similaire. Juste a remplacer (a partir du code ci-dessus):

- Tout les *= par des /=


Cependant tu dois conserver la formule suivante pour le dernier cas de la structure:

d=( 5 * (Double.parseDouble(jTextField.getText())-32) / 9 ) - 32;
pour la conversion F -> C
aliofsky Messages postés 1 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 21 janvier 2009
21 janv. 2009 à 17:21
j'ai pris en compte votre remarque et la modification est faite. maerci
chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
20 janv. 2009 à 00:17
Salut.

Il y a une toute petite erreur dans ton code:

C = (5.0 / 9.0) * (F - 32) et

F = (9.0 / 5.0) * (C + 32).


Toi, dans ton code, tu as ce qui suit:

(9 * Double.parseDouble(jTextField1.getText()) / 5 ) + 32;

(5 * (Double.parseDouble(jTextField.getText())-32) / 9) - 32;


Soit f=5

f->c


( 5 * (Double.parseDouble(jTextField.getText())-32) / 9 ) - 32;

(5 * (f - 32) / 9) - 32

(5*(5-32) / 9)-32 (5*-27/9)-32

(-135/9)-32 (-15)-32

-47 =



avec ta formule, lorsqu'il fait 5 deg. F, il ferait -47 deg. C. Voyons avec ma formule



(5.0 / 9.0) * (f - 32)

(0,555555555555555555555555555555556) * (5 - 32)

(0,555555555555555555555555555555556) * (-27)

-15



Soit c=-15

c->f



( 9 * Double.parseDouble(jTextField1.getText()) / 5 ) + 32;

(9 * -15 / 5) + 32

(-135 / 5) + 32

-27 + 32

5



ca semble bon. Voyons avec ma formule



(9.0 / 5.0) * c + 32

(1,8) * -15 + 32

-27 + 32

5

Tu trouveras d'autres formules de ce genre ici

chris081
Rejoignez-nous