Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/10/2005, 07:25
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 1 mes
Puntos: 9
Acá está el código. La idea es tratar de reducir todo en diferentes expresiones compuestas de dos variables y un operador, para poder usar la función "DoOperation". El resultado de las distintas expresiones lo voy guardando en un array, y después mediante un bucle sumos esos resultados y así obtengo el total. Todavía me falta toda esa parte, ya que no puedo conseguir reducir la expresión en subexpresiones de dos variables.
Por ejemplo, si yo tengo esta formula UTILIDAD = INGRESOS - (EGRESOS + GASTOS EXTRAORDINARIOS), tendría que sacar dos subexpresiones, una sería INGRESOS, la otra sería EGRESOS + GASTOS, y unidas por el signo "-". Entonces, resuelvo primero la segunda subexpresion, guardo el resultado en un array, resuelvo la primer expresión (en este caso no merece resolución alguna), guardo el resultado en un array, y luego hago utilizo nuevamente la funcion DoOperation para sacar el total. El tema es que no me sale hacer esa subdivisión.
Quizás lo esoy encarando de una forma más complicada y existe una manera más sencilla, por eso si se te ocurre alguna otra forma de hacerlo te pido que me lo menciones.
Un saludo y gracias por tu interés.

Dim ExpressionTerms
Sub Main(pExpression)
Call GetExpressionTerms(pExpression)
Response.Write(DoOperation(ExpressionTerms(0), ExpressionTerms(2), ExpressionTerms(1)))
End Sub
Sub GetExpressionTerms(pExpression)

ExpressionTerms = Split(pExpression, " ")
End Sub
Function DoOperation(Var1, Var2, Operation)
Select Case Operation

Case "*"
DoOperation = Var1 * Var2

Case "/"
DoOperation = Var1 / Var2

Case "+"
DoOperation = Var1 + Var2

Case "-"
DoOperation = Var1 - Var2

Case "exp"
DoOperation = Var1 ^ Var2

Case "sqr"
DoOperation = Var1 ^ (1 / Var2)

End Select

End Function

e = "100 * 2"
__________________
Add, never Remove

Última edición por mariano_donati; 30/10/2005 a las 07:31