
30/10/2005, 07:25
|
| | 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 |