Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como Introducir funciones matematicas por teclado? (https://www.clubdelphi.com/foros/showthread.php?t=21279)

Danny0085 11-05-2005 23:35:25

Como Introducir funciones matematicas por teclado?
 
Necesito realizar un programa que resuelva ecuaciones no lineales y para eso necesito que el usuario introduzca esas funciones y guardarlas en variables o algo parecido. Gracias de antemamo

Nota.- LAs funciones tiene que ser de varias variables ej: f = 2x+y-3z ;)

PeLuCa 12-05-2005 03:50:30

Hola, fijate en Torry.net que hay algunos componentes para ecuaciones quizas alguno te solucione tu problema.
Si el usuario ingresa la formula por teclado, como tu dices, deberias guardarla en un String y luego tu Parserla para obtner las variables y demas cosas. Una idea no mas.
Saludos.

elcigarra 20-05-2005 17:01:56

Hace un tiempo yo hice un programa que hace eso... No llegó a ser componente todavía, pero yo te diría que las operaciones deberían ser:

a) que la escriba en un TEdit o un TMemo

b) sacale todos los espacios en blanco y desglosalo separando por paréntesis y operandos y poné cada cosa en un TStrings

c) verificá que cosa es un numero y que cosa es una variable y según que sean separa todo en otros 2 TStrings (uno para variables y otro para numeros)

el usuario debería poner los valores de las variables en algun lado, p.ej un memo o algo así.

d) Sustituyes las variables por sus valores y te queda una ecuación solo con numeros. Luego debes resolver esto que es otro rollo porque tienes que tener en cuenta la prioridad de los operandos, los paréntesis, etc, además de que si quieres darle la posibilidad de utilizar funciones debes diferenciar los parentesis que son de funciones (tipo sen()) de los comunes, ver que no ponga las variables con paréntesis que se abren "pegados" y te lo comas pensando que es una función (p. ej: Htj(57)), que después de los paréntesis no escriba signos de "*" o "/"... pero sí de "-", etc., etc., etc., etc., etc......

Es un lindo proyecto el que te propones pero te aseguro que el mejor lugar para hacer esto es la carcel, si tienes una larga condena :D . De otra forma mejor te bajas algun componente bueno de matemáticas (te recomiendo gastar unos 25 euros más o menos y te olvidas para siempre de estos problemas). Los freeware no son buenos, yo los bajé casi todos creo y abundan los errores groseros y las omisiones.

Igual, suerte....

maeyanes 20-05-2005 17:08:14

Para hacer este tipo de programa busca información sobre conversión de expresiones en notación infija a postfija, ya teniendo tu expresión en postfijo (en una pila) es solo ir sacando los operandos y operadores e ir realizando las operaciones.


Saludos

rastafarey 24-05-2005 21:03:37

resp
 
Mira fastreport y free report tienen unevaluador de expresiones muy bueno.

Pudes ver el fuente y eso te dara uanidea de como hacerlo.

Yo en tucaso solo me lo copiaria y modificaria lo necesario para adaptarlo a mi sexsigencia.

Por que lo que esta echo no se vuelve hacer. Solo se usa o se mejora.

Por que para que reinventar la rueda lla sabemos que funciona


La franja horaria es GMT +2. Ahora son las 04:08:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi