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());
}
Exemple #2
0
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));
}