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 readLineet printgé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)?