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

Membros públicos

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

double valor () const
 Calcula o valor de uma fórmula. Mais...

void troca (Formula &outra)
 Troca uma fórmula por outra. 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 _).

referencia := '$' inteiro '$' inteiro,

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

inteiro := sequência de dígitos decimais +sequência de dígitos decimais -sequência de dígitos decimais

Invariante:
true.

Definido na linha 99 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 3 do ficheiro formula_impl.H.


Documentação dos métodos

void Calculo::Formula::troca ( Formula & outra ) [inline]
 

Troca uma fórmula por outra.

Precondição:
*this = f1 e outra = f2.
Poscondição:
*this = f2 e outra = f1.

Definido na linha 14 do ficheiro formula_impl.H.

double Calculo::Formula::valor ( ) const
 

Calcula o valor de uma fórmula.

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 Sun Apr 21 23:29:51 2002 para Calculo por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001