Você deve escrever um programa que avalie uma sequência que seria inserida em uma calculadora avançada.
O programa deve aceitar entrada usando stdin e gerar a resposta correta. Para idiomas que não têm funções para aceitar stdin, você pode assumir as funções readLine
e print
lidar com essas tarefas.
Requisitos:
- Não usa nenhum tipo de função "eval"
- Pode lidar com ponto flutuante e números negativos
- Suporta pelo menos os operadores +, -, *, / e ^
- Suporta colchetes e parênteses para substituir a ordem normal
- Pode manipular entrada contendo um ou mais espaços entre os operadores e números
- Avalia a entrada usando a ordem padrão de operações
Casos de teste
Entrada
10 - 3 + 2
Saída
9
Entrada
8 + 6 / 3 - 7 + -5 / 2.5
Saída
1
Entrada
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Saída
41
.0
no final. Não tenho muita certeza da precisão, mas mais é melhor.
.0
no final, se forem inteiros? Além disso: qual a precisão da calculadora (em relação à precisão do ponto flutuante e outras)?