Ver Mensaje Individual
  #6  
Antiguo 01-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En resumen, se trata de un método (parte de) para hallar las raíces de una función.

Aquí el problema consta de dos partes:
  1. Evaluación de una expresión matemática
  2. Implementación del algoritmo

El algoritmo en sí es independiente de la evaluación, se trata sólo de un algoritmo matemático de manera que su implementación en Delphi o cualquier otro lenguaje sólo requeriría de un buen entendimiento del algoritmo.

La parte de evaluación es necesaria para que el usuario de la aplicación pueda escribir la función que desee. Pero entonces el programa debe poder analizar la expresión (dada como una cadena de caracteres) para poder evaluarla. Por ejemplo, si la expresión es

Z^2

el programa debe de alguna forma descomponer la expresión en tokens:

z - variable
^ - operador
2 - constante

sustituir cada aparición de la variable por el valor numérico proporcionado y aplicar el operador:

Código:
if Operador = '^' then
  Resultado := Power(Valor, Potencia)
else if Operador = ...
...
Este no es un problema tan sencillo y ciertamente se facilita en los lenguajes interpretados. Sin embargo sí puede hacerse y en la web encontrarás seguramente varios evaluadores de expresiones.

Yo realmente desconozco el tema pero quizá te sirva algo de esta página:

http://www.efg2.com/Lab/Library/Delp...ns/Parsers.htm

// Saludos
Responder Con Cita