Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Felipe R. S. Souza

String como função

Recommended Posts

Galera, estou desenvolvendo um projeto que desenha na tela, usando Canvas, uma função qualquer definida por uma string. Exemplo, tenho 2 variáveis globais reais (x,resultado) e uma string (str), se o usuário definisse na string o seguinte, por exemplo: 'cos(x)*sin(x+1)'

 

eu gostaria que minha variável resultado obtivesse o valor dessa expressão, para cada x que eu definir. Em códigos:

 

...
var
  i: Integer;
  x,resultado: Real;
  str: String;

begin
    str := 'cos(x)*sin(x+1)';    {um exemplo}
    for i := 1 to 100 do
    begin
        x := i;
        resultado := ????????    {AQUI ESTÁ MEU PROBLEMA! QUERO OBTER O VALOR DA EXPRESSÃO QUE ESTÁ NA STRING str, que para i=1: resultado := cos(1)*sin(2)}
    end;
end;
...
Desde já agradeço.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, qual o algoritmo que montou para solucionar isto?? O delphi (e que eu saiba nenhum dos outros compiladores) consegue rodar uma script e já calcular o retorno assim, com base numa string de entrada, a menos que você codifique todos os casos possíveis que o usuário vá utilizar sua rotina e monte uma classe que faça a decomposição dessa sua string em comandos que o compilador possa executar... ou seja, sua rotina terá que ler letra por letra da string de entrada para tentar montar os comandos, e pra isso terá que montar um bom algoritmo de resolução (que provavelmente será complexo dependendo de quantas fórmulas matemáticas terá que computar na entrada)....

 

Tenta montar um algoritmo, pense em que situações seu programa será usado e talvez possamos dar idéias de solução...

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.