Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ingresar una ecuación

6 views
Skip to first unread message

luisnajera

unread,
Nov 7, 2009, 12:38:43 AM11/7/09
to
Hola a todos:

?Podr?an ayudarme? Necesito saber c?mo poder escribir una ecuaci?n desde un textbox y que la reconozca como tal, es decir por ejemplo:

Quiero en un textbox de un formulario escribir:

x^2 + 2*x +1

y eso asignarlo para calcular una f(x) desde el textbox, lo que no s? es como hacer que el valor sea calculado y no me ponga "x^2 + 2*x +1"

Gracias

EggHeadCafe - Software Developer Portal of Choice
How to make your Web Site More Googly
http://www.eggheadcafe.com/tutorials/aspnet/ed2489cf-efd0-46b9-a20b-e3ffb0363ac0/how-to-make-your-web-site.aspx

rdgm

unread,
Nov 7, 2009, 5:19:39 AM11/7/09
to
Hola
El Visual hace cosas pero no tantas.
Si no se sabe lo que vale x como va a calcularte nada.
Deber�s crear tu, un algoritmo que te realice lo que quieres que te
devuelva.
Porque por el ejemplo que has puesto, una ecuaci�n de segundo grado
te puede dar un resultado en el campo imaginario funci�n de"i" o dos en el
campo real.
O sea olv�date de que puedas poner en un txtbox una matriz y te calcule la
inversa , el determinante ....

Saludos

"Luis Najera" escribi� en el mensaje de
noticias:2009117038...@hotmail.com...

Alberto Poblacion

unread,
Nov 7, 2009, 9:08:25 AM11/7/09
to
"Luis Najera" wrote in message news:2009117038...@hotmail.com...

> Quiero en un textbox de un formulario escribir:
>
> x^2 + 2*x +1
>
> y eso asignarlo para calcular una f(x) desde el textbox, lo que no s? es
> como hacer que el valor sea calculado y no me ponga "x^2 + 2*x +1"

Hay un par de formas de conseguirlo:

La primera es rodear la expresi�n que te teclean con una clase y una
funci�n, para dar un fuente completo y coherente en C# (o en VB.Net), y
luego usar la clase CSharpCodeProvider para compilarlo. No hace falta
enviarlo a un archivo, el provider acepta a trav�s del CompilerParemeters
una opci�n "GenerateInMemory" que te lo hace todo directamente en memoria.
Una vez compilado, se utiliza Reflection para invocar la funci�n que has
compilado, pas�ndole los valores de x y recuperando el resultado.

La otra opci�n es la de escribir un analizador sint�ctico que analice la
expresi�n y vaya interpret�ndola, o bien incluso que la compile en memoria
usando ILGenerator.Emit para crear un m�todo din�mico.

Tanto una opci�n como la otra requieren escribir bastante c�digo, no es
una simple instrucci�n en C#. En la revista dotNetMania
(www.dotnetmania.com) del pasado mes de Junio/2009 publiqu� un art�culo
donde explicaba con ejemplos estas dos formas de aceptar y procesar
expresiones.

Rene� A. Ferreira

unread,
Nov 11, 2009, 2:25:10 PM11/11/09
to
Entiendo que lo que deseas es poder escribir ecuaciones tipo string "1 + 2 *
5" y que una funci�n te devuelva el valor de la expresi�n.

Si te sirve, en visual Basic 6.0 biene un control .OCX llamado
MicrosoftScriptControl 1.0. Este es un verdadero compilador de tiempo de
ejecuci�n. La compatibilidad con Visual Basic 2008 es otro tema. No s� si es
compatible.

Yo utilice este control para desarrollar un Sistema de Sueldos y estoy
realmente satisfecho.


Suerte

--
Ing. en Sistemas
Renee A. Ferreira


<Luis Najera> escribi� en el mensaje

news:2009117038...@hotmail.com...

0 new messages