È 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 readLinee printgestire 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
.0alla fine. Non sono troppo sicuro della precisione, ma di più è meglio.
.0alla fine se sono numeri interi? Inoltre: quanto deve essere accurata la calcolatrice (per quanto riguarda la precisione in virgola mobile e simili)?