È necessario scrivere un programma che valuti una stringa che verrebbe inserita in una calcolatrice avanzata.
Il programma deve accettare input usando stdin ed emettere la risposta corretta. Per le lingue che non dispongono di funzioni per accettare lo stdin, è possibile assumere le funzioni readLine
e print
gestire queste attività.
Requisiti:
- Non utilizza alcun tipo di funzione "eval"
- Può gestire numeri in virgola mobile e negativi
- Supporta almeno gli operatori +, -, *, / e ^
- Supporta parentesi e parentesi per sovrascrivere l'ordine normale
- Può gestire input contenenti uno o più spazi tra operatori e numeri
- Valuta l'input utilizzando l' ordine standard delle operazioni
Casi test
Ingresso
10 - 3 + 2
Produzione
9
Ingresso
8 + 6 / 3 - 7 + -5 / 2.5
Produzione
1
Ingresso
4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12
Produzione
41
.0
alla fine. Non sono troppo sicuro della precisione, ma di più è meglio.
.0
alla fine se sono numeri interi? Inoltre: quanto deve essere accurata la calcolatrice (per quanto riguarda la precisione in virgola mobile e simili)?