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

formula_impl.H

Ir para a documentação deste ficheiro.
00001 #include <sstream>
00002 
00003 inline Calculo::Formula::Formula(std::string const& formula)
00004 {
00005     std::istringstream entrada(formula);
00006 
00007     do {
00008         simbolos.push_back(Simbolo(entrada));
00009     } while(simbolos.back() != Simbolo::fim);
00010 
00011     assert(cumpreInvariante());
00012 }
00013 
00014 inline void Calculo::Formula::troca(Formula& outra)
00015 {
00016     swap(simbolos, outra.simbolos);
00017 }
00018 
00019 inline double Calculo::Formula::valorDeFormula() const
00020 {
00021     Iterador i = simbolos.begin();
00022 
00023     double valor = valorDeExpressao(i);
00024     
00025     if(i != simbolos.end() and *i != Simbolo::fim)
00026         throw ErroDeAnalise(std::string("fórmula contém símbolo espúrio ") + 
00027                             i->descricao());
00028 
00029     return valor;
00030 }
00031 
00032 inline double 
00033 Calculo::Formula::valorDeExpressao(Iterador& i) const
00034 {
00035     double valor = valorDeExpressaoCondicional(i);
00036     
00037     return valor;
00038 }
00039 
00040 inline bool Calculo::Formula::cumpreInvariante() const
00041 {
00042     return true;
00043 }

Gerado em Sun Apr 21 23:29:51 2002 para Calculo por doxygen1.2.6 escrito por Dimitri van Heesch, © 1997-2001