Elemento * OperadorFuncion::operar(DoublyLinkedList<Elemento *>& valores) { IteradorLista<Elemento *> it = valores.begin(); Operando * a = dynamic_cast<Operando *>(*it); Operando * b = dynamic_cast<Operando *>(*++it); Operando * c = dynamic_cast<Operando *>(*++it); return new Operando(a->getValor() + b->getValor() + c->getValor()); }
Elemento * OperadorTangente::operar(DoublyLinkedList<Elemento>& valores) { IteradorLista<Elemento *> iterador = valores.begin; Operando * valor = dynamic_cast<Operando *>(*iterador); return new Operando(sin(valor->getValor())); }
Elemento * OperadorLn::operar(Elemento * a, Elemento * b) { Operando * izq = dynamic_cast<Operando *>(a); Operando * der = dynamic_cast<Operando *>(b); return new Operando(log(izq->getValor())); }
Elemento * OperadorCoseno::operar(DoublyLinkedList<Elemento *> listaOperandos) { Operando * a = dynamic_cast<Operando *>(listaOperandos.getPosicionCualquiera(0)); return new Operando(cos(a->getValor()*3.14159265 / 180)); }