ho seri e gravi problemi a implementare un algoritmo per la notazione polacca inversa.
avrei bisogno di quanto segue:
data un'espressione infissa, trasformare la suddetta espressione in notazione polacca inversa. quindi eseguire il calcolo dell'espressione attraverso la nuova espressione scritta in notazione polacca inversa.
avevo già da tempo scritto queste funzioni, ma ora devo eseguire delle modifiche che mi stanno facendo dannare.
le funzioni da me scritte erano semplici, in quanto gli operandi dovevano essere numeri interi di una sola cifra.
se volete vedere quello che avevo scritto andate ai seguenti link
per trasformare un'espressione infissa in un'espressione postfissa (ossia in notazione polacca inversa) andate qui
http://nopaste.simosnap.com/2468
per vedere la funzione che che risolve il calcolo di un'espressione in notazione polacca inversa andate qui
http://nopaste.simosnap.com/2469
ora invece devo trattare anche quelle situazioni in cui gli operandi possono essere composti da più cifre e possono inoltre essere inserite anche variabili letterali (queste ultime di una sola lettera)
tanto per fare un esempio
codice:17 + y * 2
come posso fare?
ho pensato di suddividere le espressioni in token e atraverso la funzione atoi generare il corrispettivo intero per le costanti di stringa numeriche maggiori di una cifra (il 17 dell'esempio).
ma ci sono una serie di problemi che non so risolvere.
una volta che io ho trasformato tutti i token in interi, mi potrei trovare in una situazione di questo tipo:
ecco un altro esempio per chiarire:
codice:99 + c
in questo caso la stringa che contiene 99 diventa un int con valore 99, ma se io converto anche c (per avere tutte le variabili dello stesso tipo) anche il valore ascii di c è 99...
quindi quando io devo calcolare il risultato dell'espressione dalla notazione postfissa mi troverei in una situazione che non so più riconoscere la variabile c dall'intero 99... visto che tutti e due sono 99...
miiiii, che casino!
aiuto...