#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... | |
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
Definido na linha 94 do ficheiro formula.H.
|
|
Tipo que representa mapas de constantes, onde a chave é o nome da constante e o valor é o seu valor:.
|
|
|
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:.
|
|
|
Constrói uma fórmula dada a sua representação na forma textual.
Definido na linha 10 do ficheiro formula_impl.H. |
|
|
Calcula o valor de uma fórmula no contexto dado pelos mapas de constantes e funções passados como argumentos.
|
1.2.6 escrito por Dimitri van Heesch,
© 1997-2001