12/08/10 7:24
XBarboX
Salve,
sto creando una calcolatrice in java. Però devo ancora pensare a un buon algoritmo per la soluzione dell'equazione data in input.
Faccio subito un esempio per far capire tutti cosa ho intenzione di fare:
input: 10+(20/2)^2
output: 110
In definitiva mi servirebbe una funziona che data una stringa("1+1" ritorna un double con il risultato dell'equazione.
Per il momento ho pensato a una funzione ricorsiva:
1)Esegui il calcolo con precedenza maggiore (Es: faccio prima la divisione e non la somma)
2)Se è rimasto ancora qualche operazione richiamami
Altrimenti risultato = ConvertiStringInDouble(parametro);
Calcola("10+20*1-10"
Calcola("10+20-10"
Calcola("30-10"
Calcola("20"
ris = ConvertiStringInDouble("20"
Spero di essermi spiegato abbastanza bene
In conclusione:
Questo metodo va bene? Esiste un'altro metodo più semplice?
Insomma datemi qualche consiglio utile
Grazie a tutti.
sto creando una calcolatrice in java. Però devo ancora pensare a un buon algoritmo per la soluzione dell'equazione data in input.
Faccio subito un esempio per far capire tutti cosa ho intenzione di fare:
input: 10+(20/2)^2
output: 110
In definitiva mi servirebbe una funziona che data una stringa("1+1" ritorna un double con il risultato dell'equazione.
Per il momento ho pensato a una funzione ricorsiva:
1)Esegui il calcolo con precedenza maggiore (Es: faccio prima la divisione e non la somma)
2)Se è rimasto ancora qualche operazione richiamami
Altrimenti risultato = ConvertiStringInDouble(parametro);
Calcola("10+20*1-10"
Calcola("10+20-10"
Calcola("30-10"
Calcola("20"
ris = ConvertiStringInDouble("20"
Spero di essermi spiegato abbastanza bene
In conclusione:
Questo metodo va bene? Esiste un'altro metodo più semplice?
Insomma datemi qualche consiglio utile
Grazie a tutti.
aaa