Página principal   Lista de namespaces   Hierarquia de classes   Lista de componentes   Lista de ficheiros   Componentes   Declarações  

Referencia à classe Calculo::Formula

Representa uma fórmula algébrica. Mais...

#include <formula.H>

Mostrar lista completa dos membros

Tipos Públicos

typedef std::map<std::string,
double> 
MapaDeConstantes
 Tipo que representa mapas de constantes, onde a chave é o nome da constante e o valor é o seu valor:.

typedef std::map<std::string,
Funcao
MapaDeFuncoes
 Tipo que representa mapas de funções definidas pelo utilizador, i.e., funções definidas à custa da própria classe Formula, onde a chave é o nome da função e o valor é uma instância da classe Funcao:.


Membros públicos

 Formula (std::string const &formula)
 Constrói uma fórmula dada a sua representação na forma textual. Mais...

double valor (MapaDeConstantes const &constantes, MapaDeFuncoes const &funcoes) const
 Calcula o valor de uma fórmula no contexto dado pelos mapas de constantes e funções passados como argumentos. Mais...


Descrição detalhada

Representa uma fórmula algébrica.

Uma fórmula algébrica corresponde a uma expressão recorrendo a valores literais, constantes e funções, com a seguinte gramática (regras apresentadas por ordem crescente de precedência):

Gramática das fórmulas:

expressao := expressao_condicional

expressao_condicional := expressao_ou | expressao_ou '?' expressao_condicional ':' expressao_condicional

expressao_ou := expressao_e | expressao_e '|' expressao_ou

expressao_e := expressao_igualdade | expressao_igualdade '&' expressao_e

expressao_igualdade := expressao_relacional | expressao_relacional '==' expressao_igualdade expressao_relacional '!=' expressao_igualdade

expressao_relacional := expressao_aditiva | expressao_aditiva '<' expressao_relacional expressao_aditiva '<=' expressao_relacional expressao_aditiva '>' expressao_relacional expressao_aditiva '>=' expressao_relacional

expressao_aditiva := expressao_multiplicativa | expressao_multiplicativa '+' expressao_aditiva expressao_multiplicativa '-' expressao_aditiva

expressao_multiplicativa := expressao_potencial | expressao_potencial '*' expressao_multiplicativa expressao_potencial '/' expressao_multiplicativa

expressao_potencial := expressao_unaria | expressao_unaria '^' expressao_potencial

expressao_unaria := expressao_funcional | '-' expressao_unaria '+' expressao_unaria '!' expressao_unaria

expressao_funcional := expressao_primaria | identificador '(' ')' identificador '(' lista_de_expressoes ')'

lista_de_expressoes := expressao | expressao ',' lista_de_expressoes

expressao_primaria := numero | constante | '(' expressao ')'

numero := como os double

constante := nome, com nome comecando por letra (sequência de letras, dígitos, e _.

identificador := sequência de letras, dígitos, e _ comecando por letra

Invariante:
true.

Definido na linha 94 do ficheiro formula.H.


Documentação de tipos definidos

typedef std::map< std::string, double > Calculo::Formula::MapaDeConstantes
 

Tipo que representa mapas de constantes, onde a chave é o nome da constante e o valor é o seu valor:.

Definido na linha 98 do ficheiro formula.H.

typedef std::map< std::string, Funcao > Calculo::Formula::MapaDeFuncoes
 

Tipo que representa mapas de funções definidas pelo utilizador, i.e., funções definidas à custa da própria classe Formula, onde a chave é o nome da função e o valor é uma instância da classe Funcao:.

Definido na linha 104 do ficheiro formula.H.


Documentação do Construtor & Destrutor

Calculo::Formula::Formula ( std::string const & formula ) [inline]
 

Constrói uma fórmula dada a sua representação na forma textual.

Excepções:
Calculo::ErroDeAnalise   erro durante a análise da fórmula.

Definido na linha 10 do ficheiro formula_impl.H.


Documentação dos métodos

double Calculo::Formula::valor ( MapaDeConstantes const & constantes,
MapaDeFuncoes const & funcoes ) const
 

Calcula o valor de uma fórmula no contexto dado pelos mapas de constantes e funções passados como argumentos.

Parâmetros:
constantes   Mapa com os valores das constantes.
funcoes   Mapa com as funções definidas pelo utilizador.
Excepções:
Calculo::ErroDeAnalise   erro durante a análise da fórmula.


A documentação para esta classe foi gerada a partir dos seguintes ficheiros:
Gerado em Mon Apr 15 15:57:08 2002 para Calculo por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001