A voir également:
- Ma Calculatrice ne fonctionne pas correctement
- Calculatrice gratuit - Télécharger - Calcul & Conversion
- Installer calculatrice sur mon portable - Télécharger - Calcul & Conversion
- Ma-calculatrice - Télécharger - Calcul & Conversion
- Votre pc n'a pas démarré correctement - Forum Windows 10
- Chrome ne s'est pas correctement arrêté - Forum Google Chrome
2 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
19 mai 2014 à 19:54
19 mai 2014 à 19:54
Bonsoir,
Puisque tu utilises NetBeans (ça se voit à 3 kilomètres), tu devrais mettre des points d'arrêts et faire du pas à pas dans ton code pour comprendre ce qui se passe.
Voir : Débogage de Programmes Java
En gros, tu fais :
Puisque tu utilises NetBeans (ça se voit à 3 kilomètres), tu devrais mettre des points d'arrêts et faire du pas à pas dans ton code pour comprendre ce qui se passe.
Voir : Débogage de Programmes Java
En gros, tu fais :
CalculatriceSwing()
str = ""
calc.resultat = 0
Btn5ActionPerformed
str = "5"
calc.resultat = 0
BtnMoinsActionPerformed
str = ""
calc.resultat = -5
Btn5ActionPerformed
str = "5"
calc.resultat = -5
BtnEgalActionPerformed
str = ""
calc.resultat = -10
Merci d'avoir répondu, j'essaie mais je n'y arrive toujours pas,
voici ce que j'ai fait pour mes codes +,-,C et =
les + et * fonctionnent sauf que pour le - si je fais 4-4, j'obtiens -8
voici ce que j'ai fait pour mes codes +,-,C et =
private void BtnPlusActionPerformed(java.awt.event.ActionEvent evt) {
operateur="+";
calc.ajoute(Double.parseDouble(str));
str="";
}
private void BtnMoinsActionPerformed(java.awt.event.ActionEvent evt) {
if(str=="") str="-"+str;
else{
operateur="-";
calc.soustrait(Double.parseDouble(str));
str="";
}
}
private void BtnEgalActionPerformed(java.awt.event.ActionEvent evt) {
switch(operateur){
case "+" : calc.ajoute(Double.parseDouble(str)); break;
case "-" : calc.soustrait(Double.parseDouble(str)); break;
}
calc.getResultat();
str="";
resultatLabel.setText(Double.toString(calc.getResultat()));
}
private void BtnCActionPerformed(java.awt.event.ActionEvent evt) {
calc.setResultat(0);
str="";
operateur="";
resultatLabel.setText("0");
}
les + et * fonctionnent sauf que pour le - si je fais 4-4, j'obtiens -8
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
Modifié par KX le 19/05/2014 à 22:59
Modifié par KX le 19/05/2014 à 22:59
if(str=="")est faux, il ne faut jamais comparer deux objets avec
==ça ne fera pas ce que tu veux. Utilises la méthode
equals
à la place, ou dans ton cas précis, la méthode isEmpty
.
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
19 mai 2014 à 23:12
19 mai 2014 à 23:12
Le problème ici c'est que tu fais l'opération au moment où tu appuies sur l'opérateur, or il faut attendre de connaître la seconde opérande avant d'obtenir le résultat...
Tu connais les piles ?
http://fr.wikipedia.org/wiki/Pile_(informatique)
Ce qu'il te faut c'est empiler les opérandes et les opérateurs, dès que tu atteints la taille 3 (c'est à dire deux opérandes et un opérateur), tu dépiles pour faire ton calcul et tu rempiles le résultat.
C'est comme ça que fonctionne la mémoire d'une calculatrice.
Tu connais les piles ?
http://fr.wikipedia.org/wiki/Pile_(informatique)
Ce qu'il te faut c'est empiler les opérandes et les opérateurs, dès que tu atteints la taille 3 (c'est à dire deux opérandes et un opérateur), tu dépiles pour faire ton calcul et tu rempiles le résultat.
C'est comme ça que fonctionne la mémoire d'une calculatrice.
non, vraiment désolé, je ne connais pas les piles.
ma prof m'a expliqué vite fait, elle a dit que j'étais capable de le faire avec tout ce que j'ai appris.
C'est une question d'exam, elle ne peut pas m'en dire plus. On doit être capable de le faire en "chipotant", (drôle de logique) et avec tout ce qu'on a vu, et les piles n'en font pas partie.
Je pense qu'elle a parlé d'un booléen, à savoir si c'était le premier ou je ne sais pas trop quoi. avec une variable "old operateur" ou un truc du genre, mais c'était vraiment à l'arrache
merci de m'aider
ma prof m'a expliqué vite fait, elle a dit que j'étais capable de le faire avec tout ce que j'ai appris.
C'est une question d'exam, elle ne peut pas m'en dire plus. On doit être capable de le faire en "chipotant", (drôle de logique) et avec tout ce qu'on a vu, et les piles n'en font pas partie.
Je pense qu'elle a parlé d'un booléen, à savoir si c'était le premier ou je ne sais pas trop quoi. avec une variable "old operateur" ou un truc du genre, mais c'était vraiment à l'arrache
merci de m'aider