RDFormula 1.0
Componente de resolução de Expressões Matemáticas

Agradecimento: 

-
A todos programadores e desenvolvedores que direta ou indiretamente contribuiram para a criação e aperfeiçoamento deste componente.

Introdução: 

- Este componente é um apanhado de diversas rotinas para tratamento de Strings, Macro Substituição, Funções e Expressões Matemáticas em Delphi,  utilizamos tambêm algumas rotinas existentes em outros componentes. 

- Alguns conceitos vieram do bom e velho COBOL, e foram adaptados para o Pascal, (diga-se de passagem com muito mais recursos).

Quer saber mais sobre Formula Matemáticas em Delphi ?? 


  Visite: http://homepages.borland.com/efg2lab/Library/Delphi/MathFunctions


Caracteristicas:

- Suporte ilimitado ao números de variáveis definidas pelo usuário
- Validação da Expressão, retornando uma mensagem de erro.
- Operações básicas, expressões e funções trigonométricas.

Operadores Descrição Exemplo:
+ Adição 8 + 2 = 10 
Subtração 8 -  2  = 6
Multiplicação 8 * 2 = 16
/ Divisão 8 / 2  =  4
^ Exponencial 8^2   = 64 (Base deve ser Positiva)
( ) Parenteses (8+2) / 2 = 5   é diferente  8+2 / 2 = 9
MOD Resto da divisão 10 mod 3 = 1   (somente inteiros) 
ABS Valor Absoluto ABS(10 -12) = 2    ABS(10 - 8) = 2 
ROUND Arredonda Round(11/3) = 4  senão 3.6666
TRUNC Trunca valor Trunc(11 /3) = 3  
SIN Função Seno  
COS Função Coseno  
ATAN  Função Tangente  
EXP Exponencial Exp(2)      (inverso da LN)
LN  Logaritimo Nataral  Log(10)
SQRT Raiz Quadrada SQRT(16) = 4
SQR  Quadrado  SQR(2) = 4  (o mesmo que x*x)

CÁLCULANDO UMA EXPRESSÃO:

Para calcular o valor de uma expressão, coloque-a na propriedade expressão e chame a função EXECUTE.

Exemplo: 

RDFormula1.Expressao := '(18 * 8) / 2';
RDFormula1.Execute; 
if RDFormula1.Falhou then // é TRUE se houve falha na execução...
   Showmessage('Erro')
else
   Showmessage('O resultado é ' +  FloatToStrF(RDFormula1.Resultado, ffGeneral, 18, 2);


VARIÁVEIS DEFINIDAS PELO USUÁRIO:

Se for utilizar variáveis definidas pelo usuário, então você deve alimentar os valores correspondentes no evento OnVariavel

Exemplo: 

Procedure TForm1.RDFormula1Variavel(Sender: TObject; VarName: String;
var Value: Extended; var Found: Boolean);
begin
     // 1) Este evento procura pelo valor de uma VARIAVEL encontrada na fórmula
     // 2) Todas as variaveis possiveis de serem utilizadas na expressão, devem estar
     // relacionadas aqui e com seus devidos valores fixos ou variaveis,
     // campo de arquivo etc.
     // 3) O VALUE representa o valor que deve ser válido
     // 4) VARNAME é o nome da variavel encontrada na expressão,
     // Para evitar erros use UPPERCASE ou LOWERCASE para converter o VARNAME
     // 5) FOUND é uma variavel do tipo boolean, voce deve validar se o valor de VARNAME
     // foi encontrado (TRUE) e não (FALSE)

    
Found := True;

     // Transforme tudo pra Maiusculo para evitar case sensitive...
     VarName := Uppercase(VarName);

     // Valores Fixos...
    
if (VarName = 'SALARIO')   then Value := 181   else
      if (VarName = 'DIAMES')    then Value := 30    else
       if (VarName = 'DIASEMANA') then Value := 7     else
        if (VarName = 'BANANA')    then Value := 1.85  else
         if (VarName = 'LARANJA')   then Value := 2.50  else
          if (VarName = 'UVA')       then Value := 5.00  else
           // Valores lidos do campo EDIT
          
if (VarName = 'DIAS')      then Value := STRTOINT(DIAS.TEXT) else
            if (VarName = 'QUANTIDADE') then Value := STRTOINT(QUANTIDADE.TEXT) else
               Found := False; // Se nao achou o valor mode FALSE para FOUND.
end;
* Veja projeto exemplo completo


Voltar

Deltress Informática Ltda
Av. República, 948   -   Centro
17509-031 - Marília - SP  -   Fone/Fax (14) 3454-7880
www.deltress.com.br         deltress@deltress.com.br