Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

El usuario del sistema escribe una ecuación

Participa en el tema El usuario del sistema escribe una ecuación en el foro Programación.
Hola amigos! Tengo un problema: para diferentes formas de terrenos, siempre irregulares, necesito calcular un ...

Buscar en este tema:
 
  •  
    #1 El usuario del sistema escribe una ecuación
    Hola amigos! Tengo un problema: para diferentes formas de terrenos, siempre irregulares, necesito calcular un área o un volumen. Quien sabe perfectamente cuál es la ecuación a usar para cada forma es el usuario del sistema, que quiere tipear su propia fórmula en cada caso. Yo le permito, desde el sistema, ingresar la fórmula como si fuera un string.
    Mi pregunta es: cómo hago para asignar ese string a una fórmula real, como si la misma estuviese escrita dentro del programa?
    Por ejemplo: el usuario escribe "(-b+(b^2-(4*a*c)^(1/2))/(2*a)"
    y yo tengo que armar una ecuación que sea
    Y=(-b+(b^2-(4*a*c))^(1/2))/(2*a)
    dentro de mi programa, ya que Y será el resultado que estoy buscando.
    Muchas gracias por la ayuda!
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/901954-el-usuario-del-sistema-escribe-ecuacion.html
    | Más
  • #2 Re: El usuario del sistema escribe una ecuación

    Usá el método Eval de un objeto ScriptControl.
    Me gusta este mensaje
  • #3 Re: El usuario del sistema escribe una ecuación

    Primero tendrias que plantear la ecuacion en todos sus pasos sin ingnorar ni el Mas minimo, luego tendrias que fijarte en tu ecuacion como la separaste en terminos, a partir de ellos, con

    Mid( Variable , Desde donde (Integer osea numero ) , ( desde hasta cuantos lugares mas lee[integer ) )

    ejmplo
    A= "pepe jojo"
    B = mid(A,4,6)
    Print B // B = "e jojo"
    El "10" osea la cantidad e pociciones es opcional , sino pondrias 10 como en este caso, lee hasta el final.

    pero la idea es que con esa instruccion partieras la ecuacion por los teminnos y luego resolviras coda expresion por si sola, y luego.
    Cuando te quede algo irreductible empieses a pasar los terminos, usando "Mid"

    Para pasar de String a Integer-
    A as String
    B as Interger
    A = "1234"
    B = Val(A)
    Tambien podes usar Int en vez de Val pero no te toma los decimales
    Otra cosa, trata de usar Doble como Parametro para los Numeros, por que sino lo decimales te van a hacer la vida imposible
    Me gusta este mensaje
  • #4 Re: El usuario del sistema escribe una ecuación

    para mi tendrias que pensar en una maquina de estados para validar la expresion regular. Y si este llego a un estado final identificar cada uno de los valores posibles como variables, operadores, valores. Bueno si todos esto lo ubicas en un arbol no seria muy dificil luego calcularlo, recorriendo el arbol.
    Me gusta este mensaje
  • #5 Re: El usuario del sistema escribe una ecuación

    Originalmente publicado por HeavenMight Ver mensaje
    Primero tendrias que plantear la ecuacion en todos sus pasos sin ingnorar ni el Mas minimo, luego tendrias que fijarte en tu ecuacion como la separaste en terminos, a partir de ellos, con

    Mid( Variable , Desde donde (Integer osea numero ) , ( desde hasta cuantos lugares mas lee[integer ) )

    ejmplo
    A= "pepe jojo"
    B = mid(A,4,6)
    Print B // B = "e jojo"
    El "10" osea la cantidad e pociciones es opcional , sino pondrias 10 como en este caso, lee hasta el final.

    pero la idea es que con esa instruccion partieras la ecuacion por los teminnos y luego resolviras coda expresion por si sola, y luego.
    Cuando te quede algo irreductible empieses a pasar los terminos, usando "Mid"

    Para pasar de String a Integer-
    A as String
    B as Interger
    A = "1234"
    B = Val(A)
    Tambien podes usar Int en vez de Val pero no te toma los decimales
    Otra cosa, trata de usar Doble como Parametro para los Numeros, por que sino lo decimales te van a hacer la vida imposible
    Muchas gracias por tu respuesta. Pero no me interesa tanto EVALUAR la corrección de la expresión escrita (si estuviera mal escrita le diré que hay un error), como SI me interesa que el sistema interprete como ecuación el string que el usuario escribió.
    En definitiva, si el usuario escribe "2+4*X" yo necesito armar una ecuación dentro del programa Y=2+4*X y quedarme con el resultado de Y, conociendo X.
    -----Agregado el 16/3/2009 a las 03 : 18 : 57-----
    Originalmente publicado por pangus Ver mensaje
    Usá el método Eval de un objeto ScriptControl.
    No sé de qué se trata lo que me decís, pero lo voy a estudiar. Muchas gracias por tu ayuda.
    -----Agregado el 16/3/2009 a las 03 : 19 : 56-----
    Originalmente publicado por megajandro Ver mensaje
    para mi tendrias que pensar en una maquina de estados para validar la expresion regular. Y si este llego a un estado final identificar cada uno de los valores posibles como variables, operadores, valores. Bueno si todos esto lo ubicas en un arbol no seria muy dificil luego calcularlo, recorriendo el arbol.
    Muchas gracias por tu respuesta. Pero no me interesa EVALUAR la corrección de la expresión escrita (si estuviera mal escrita le diré que hay un error), como SI me interesa que el sistema interprete como ecuación el string que el usuario escribió.
    En definitiva, si el usuario escribe "2+4*X" yo necesito armar una ecuación dentro del programa Y=2+4*X y quedarme con el resultado de Y, conociendo X.
    -----Agregado el 16/3/2009 a las 03 : 32 : 37-----
    Originalmente publicado por pangus Ver mensaje
    Usá el método Eval de un objeto ScriptControl.
    No encontré el objeto ScriptControl dentro de ninguna de las dll que se abren con el Visual Basic. Obviamente, tampoco en el help del Visual Basic 6. Me podés ayudar un poco más?
    Editado por CASAPAJU - 16.03.2009 15:32 hs. | Motivo: Mensajes unidos automáticamente
    Me gusta este mensaje
  • #6 Re: El usuario del sistema escribe una ecuación

    Originalmente publicado por pangus Ver mensaje
    Usá el método Eval de un objeto ScriptControl.
    Magistral! Encontré el Microsoft Script Control en Google y había incluso un ejemplo que me sirvió un montón.
    Muchísimas gracias!
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 5 RESPUESTAS
  • 99 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB