Hey, j'ai quasiment terminé mon exo Java sur la calculatrice !
Tout fonctionne à 100% SAUF un truc, je ne peux pas entrer de chiffres supérieurs à 9 dans ma calculatrice ! Exemple, si j'entre le nombre 2 puis le nombre 6, ça devrait donner "26"
Moi là, ça m'affiche 2, puis si j'appuie sur 6, ça remplacera le 2 par le 6 !
Probablement la calculette la moins utile du monde, vous en conviendrait ! Alors, d'un point de vu purement algorithmique, que dois-je faire !
(je demande juste un algo, pas le code en Java, je veux me démerder un minimum quand même )
Merci !
Sans savoir d'où tu pars, ça va être dur, mais je dirai que tu fais une affectation au lieu d'une concaténation.
Il ne faut manipuler des nombres que lorsque l'on fait le calcul
Utilise plutôt un String ou un tableau. A chaque fois qu'on appuie sur un bouton-chiffre, on ajoute le bon chiffre à la fin du tableau/String.
Quand on appuie sur un bouton "autre" (additionner, soustraire, valider, ...), on convertit la chaine de caractère en nombre et on stocke ça quelque part pour le calcul final.
M'fin, j'imagine que tu fais une interface graphique, en console je vois même pas pourquoi tu aurais ce problème
"on convertit la chaine de caractère en nombre"
Pas forcément si tu veux faire une calculatrice infini tu peux tout faire dans des strings.
Par contre ca implique de recoder les opérations +*-/% ...
J'ai du mal à voir ce que tu veux dire par "calculatrice infinie" Qui peut utiliser des nombres qui tiennent pas sur 32 bits ?
on convertit la chaine de caractère en nombre
Pas forcément si tu veux faire une calculatrice infini
tu peux tout faire dans des strings.
Par contre ca implique de recoder les opérations +*-/% ...
Note qu'aucune lib raisonnable ne fait ca. En pratique les libs de calcul sur grand entier utilisent une representation qui ne gache pas 4.5bit/8. En general, ca encode les nombres en base 2^32 ou 2^64
Ah oui merde le code : http://pastebin.com/Fw4dNSJg
Désolé
c simple l'utilisateur rentre 2
ensuite il rentre 6
ça fait 26
tu décompose 26 tu as 2*10+6*1
imagine il rentre 3
tu as 263 ça fais
2*100+6*10+3*1
ou
2E2 + 6E1 + 3E0
Homme : Je n'ai pas besoin de boucles là dedans, sauf si je remplace tout mon bordel par des tableaux. Pour le moment c'est un premier jet, je chercherai à optimiser tout ça avec des tableaux et une bonne incrémentation ensuite
[[[[[[ : J'adore ton pseudo + Ok je vais essayer ça