31 #include "PilaPunteros.h" 51 Rama *nuevo_nodo=
new Rama(s,izdo,dcho);
54 inline void InsertaOperando(Pila &pila,
const Operando *s)
56 Rama *opndo= NuevoNodo(s,NULL,NULL);
59 inline void InsertaOpUnario(Pila &pila,
const Operando *s)
61 Rama *opndo= pila.Pop();
62 Rama *opuni= NuevoNodo(s,NULL,opndo);
65 inline void InsertaOpBinario(Pila &pila,
const Operando *s)
67 Rama *opndo2= pila.Pop();
68 Rama *opndo1= pila.Pop();
69 Rama *opbin= NuevoNodo(s,opndo1,opndo2);
72 inline Rama *FinExpresion(Pila &pila)
74 Rama *retval= pila.Pop();
75 if (pila.size() > 0) std::cerr <<
"Error en la expresion" << std::endl;
80 Rama *Traduce(
const std::string &cadena_entrada);
81 void InicFromStr(
const std::string &str);
84 inline const double &GetValor(
void)
const 85 {
return raiz->GetValor(); }
90 void Dif(
const std::string &var);
91 inline void Simplifica(
void)
92 {
if(raiz) raiz= simplifica(raiz); }
93 inline void Distrib(
void)
94 {
if(raiz) raiz= distrib(raiz); }
113 const double &ToNum(
void)
const;
115 const double &ToNum(
const std::string &palabra,
const double &d)
const;
116 const double &ToNum(
const MapValores &)
const;
117 inline virtual bool Evaluable(
void)
const 129 void Asigna(
const std::string &palabra,
const ArbolExpr &a);
130 static void Asigna(
const std::string &palabra,
const double &d)
132 void DesAsigna(
const std::string &palabra)
145 void Print(std::ostream &os)
const;
153 std::istream &operator>>(std::istream &stream,
ArbolExpr &a);
void Opera(void)
Opera todo el árbol.
Definition: ArbolExpr.cc:185
void Print(std::ostream &os) const
Imprime la expresión en el stream que se pasa como parámetro.
Definition: ArbolExpr.cc:322
Árbol que representa una expresión matemática.
Definition: ArbolExpr.h:41
Clase base de los operadores unarios y binarios.
Definition: Operador.h:30
ArbolExpr(void)
Constructor por defecto.
Definition: ArbolExpr.cc:34
void Sqrt(void)
Aplica el operador "raíz cuadrada" a la expresión contenida en el árbol.
Definition: ArbolExpr.cc:240
Definition: Variable.h:31
Especifica valores de variables.
Definition: MapValores.h:32
Definition: ConjVariables.h:30
Definition: ExprPostfija.h:33
friend ArbolExpr sqrt(const ArbolExpr &)
Devuelve la raíz cuadrada del argumento.
Definition: ArbolExpr.cc:382
virtual bool operator==(const ArbolExpr &) const
Comparison operator.
Definition: ArbolExpr.cc:63
int NumVariables(void) const
Devuelve el número de variables que intervienen en la expresión.
Definition: ArbolExpr.cc:314
void Dif(const std::string &var)
Diferencia la expresión respecto a la variable cuyo identificador se pasa como parámetro.
Definition: ArbolExpr.cc:248
Operando.
Definition: Operando.h:42
std::string GetString(void) const
Devuelve una text string con el contenido de la expresión.
Definition: ArbolExpr.cc:326
ConjVariables Variables(void) const
Devuelve el conjunto de variables que aparecen en la expresión.
Definition: ArbolExpr.cc:280
void Abs(void)
Aplica el operador "valor absoluto" a la expresión contenida en el árbol.
Definition: ArbolExpr.cc:233
std::vector< std::string > getNamesOfVariables(void) const
Return the names of the variables.
Definition: ArbolExpr.cc:318
friend std::ostream & operator<<(std::ostream &stream, const ArbolExpr &a)
Inserta en stream de salida.
Definition: ArbolExpr.cc:342
void OperaToNum(void)
Procesa los operadores to_num que haya en la expresión.
Definition: ArbolExpr.cc:192
static void Asigna(const std::string &palabra, const double &d)
Assigns to the variable named 'palabra' the value being passed as parameter.
Definition: ProtoExpr.cc:72
bool TieneVariable(const std::string &palabra) const
Return true if the expression depends on the variable name being passed as parameter.
Definition: ArbolExpr.cc:293
Definition: PilaPunteros.h:29
ArbolExpr & operator=(const ArbolExpr &otro)
Operador asignación.
Definition: ArbolExpr.cc:82
Definition: ExprFunctor.h:28
Definition: ExprBase.h:28
bool Evaluable(void) const
Devuelve verdadero si la rama es evaluable.
Definition: Rama.cc:166
static void DesAsigna(const std::string &palabra)
Removes the assignment to the variable which name is being passed as parameter.
Definition: ProtoExpr.cc:76
friend ArbolExpr abs(const ArbolExpr &)
Devuelve el valor absoluto del argumento.
Definition: ArbolExpr.cc:374
void Neg(void)
Cambia de signo la expresión contenida en el árbol.
Definition: ArbolExpr.cc:226
const std::string & GetFullString(void) const
Devuelve una text string con el contenido de la expresión representando los valores reales con toda l...
Definition: ArbolExpr.cc:334