Vous devez écrire un programme qui évalue une chaîne qui serait entrée dans une calculatrice avancée.
Le programme doit accepter la saisie à l'aide de stdin et produire la bonne réponse. Pour les langues qui n'ont pas de fonctions pour accepter stdin, vous pouvez assumer les fonctions readLine
et print
gérer ces tâches.
Exigences:
- N'utilise aucun type de fonctions "eval"
- Peut gérer les nombres à virgule flottante et négatifs
- Prend en charge au moins les opérateurs +, -, *, / et ^
- Prend en charge les crochets et les parenthèses pour remplacer l'ordre normal
- Peut gérer une entrée contenant un ou plusieurs espaces entre les opérateurs et les nombres
- Évalue l'entrée en utilisant l' ordre standard des opérations
Cas de test
Contribution
10 - 3 + 2
Sortie
9
Contribution
8 + 6 / 3 - 7 + -5 / 2.5
Sortie
1
Contribution
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Sortie
41
.0
à la fin. Je ne suis pas trop sûr de la précision, mais plus c'est mieux.
.0
à la fin s'ils sont des entiers? Aussi: quelle doit être la précision de la calculatrice (en ce qui concerne la précision en virgule flottante et autres)?