public override bool Equals(object obj) { try { Polinomio p = (Polinomio)obj; int total = _listaTerminos.Count; bool iguales = p._listaTerminos.Count == total; if (iguales) { foreach (Termino t in _listaTerminos.Values) { iguales = iguales && t.Equals(p._listaTerminos[t.Exponente]); } } return(iguales); } catch (FormatException) { return(false); } }
object ICloneable.Clone() { Polinomio clon = new Polinomio(); clon._listaTerminos = new SortedList <double, Termino>(); foreach (Termino t in _listaTerminos.Values) { clon._listaTerminos.Add(t.Exponente, (Termino)((ICloneable)t).Clone()); } return(clon); }
public void TestEquals2() { Termino t1 = new Termino(2, 2); Termino t2 = new Termino(3, 3); Termino t3 = new Termino(3, 0); IPolinomio p1 = new EcuacionesLib.Polinomio(); IPolinomio p2 = new EcuacionesLib.Polinomio(); p1.Insertar(t1); p1.Insertar(t2); p1.Insertar(t3); p2.Insertar(t1); p2.Insertar(t2); //p2.Insertar(t3); Assert.IsFalse(p1.Equals(p2)); }
public void Newton() { Termino t1 = new Termino(1, 4); Termino t2 = new Termino(-1, 3); Termino t3 = new Termino(-3, 2); Termino t4 = new Termino(-4, 1); Termino t5 = new Termino(-2, 0); IPolinomio p1 = new EcuacionesLib.Polinomio(); IPolinomio p2; p1.Insertar(t1); p1.Insertar(t2); p1.Insertar(t3); p1.Insertar(t4); p1.Insertar(t5); //p2.Insertar(t3); p2 = (IPolinomio)p1.Clone(); p2.Derivar(); Assert.IsTrue((int)p1.Resolver(EcuacionesLib.Polinomio.Newton(2, 3, p1)) == 0); }
object ICloneable.Clone() { Polinomio clon = new Polinomio(); clon._listaTerminos = new SortedList<double, Termino>(); foreach (Termino t in _listaTerminos.Values) { clon._listaTerminos.Add(t.Exponente, (Termino)((ICloneable)t).Clone()); } return clon; }
private IPolinomio construirPolinomio() { IPolinomio p = new Polinomio(); //suponemos los pagos ordenados desde el primer mes hasta el ultimo int maxExponente = _pagos.Count; p.Insertar(new Termino(-_inversion, maxExponente)); foreach (double qn in _pagos) { maxExponente--; p.Insertar(new Termino(qn, maxExponente)); } return p; }