
Envoyé par
Sve@r
Là où ça peut se compliquer, c'est avec les priorités (2+3*4 => d'abord calculer 3*4). Il te faut affecter un coefficient de priorité aux opérateurs. Ensuite, comme tu détectes chaque bouton appuyé, une fois que tu as détecté '2' puis '+' puis '3' si le bouton suivant a une priorité égale ('+' ou '-') ou inférieure ('=') tu calcules alors le résultat 5 que tu affiches ; s'il a une priorité supérieure ('*' ou '/') tu pushes le résultat 5 dans une pile et tu attends la suite ('*' puis '4') et idem si le bouton suivant a une priorité égale ('*' ou '/') ou inférieure ('+' ou '-' ou "=") alors tu popes la pile ('5') que tu calcules avec "*4=20"...
Et un principe analogue avec les parenthèses. Sauf que chaque parenthèse ouverte définira un nouvel espace de calcul dont le résultat sera pushé lorsque la parenthèse fermante associée est détectée...
Partager