Пример #1
0
        //public static Termino operator+(Termino t1,Termino t2){
        //    Termino t = new Termino(t1._multiplicando + t2._multiplicando, t1._exponente);
        //    return t;
        //}

        #region ICloneable Members

        object ICloneable.Clone()
        {
            Termino clon = new Termino();

            clon._exponente     = _exponente;
            clon._multiplicando = _multiplicando;
            return(clon);
        }
Пример #2
0
        object ICloneable.Clone()
        {
            Termino clon = new Termino();

            clon._exponente = _exponente;
            clon._multiplicando = _multiplicando;
            return clon;
        }
Пример #3
0
        public void TestingIntegral()
        {
            Termino t1 = new Termino(3, 3);

            Termino t2 = new Termino(9, 2);

            t2.Integrar();

            Assert.IsTrue(t1.Equals(t2));
        }
Пример #4
0
        public void TestingDerivada()
        {
            Termino t1 = new Termino(3, 3);

            Termino t2 = new Termino(9, 2);

            t1.Derivar();

            Assert.IsTrue(t1.Equals(t2));
        }
Пример #5
0
 public override bool Equals(object obj)
 {
     if (obj != null & obj is Termino)
     {
         Termino t = (Termino)obj;
         return(_exponente == t._exponente && _multiplicando == t._multiplicando);
     }
     else
     {
         return(false);
     }
 }
Пример #6
0
        void IPolinomio.Insertar(Termino t)
        {
            double exponente = t.Exponente;

            if (_listaTerminos.ContainsKey(exponente))
            {
                Termino t2 = _listaTerminos[exponente];
                t2.Multiplicando = t2.Multiplicando + t.Multiplicando;
            }
            else
            {
                _listaTerminos.Add(exponente, t);
            }
        }
Пример #7
0
        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));
        }
Пример #8
0
        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);
        }
Пример #9
0
        double IPolinomio.Resolver(double x)
        {
            double          v, ultimoExp;
            IList <Termino> lista = _listaTerminos.Values;
            int             size  = lista.Count;

            Termino[] terminos = new Termino[size];
            lista.CopyTo(terminos, 0);

            Termino t1 = terminos[size - 1];

            v         = t1.Multiplicando;
            ultimoExp = t1.Exponente;

            for (int i = size - 2; i > -1 && ultimoExp > 0; i--)
            {
                Termino t2 = terminos[i];

                double grado = t1.Exponente - t2.Exponente;
                double pot   = Math.Pow(x, grado);
                v         = v * pot;
                v        += t2.Multiplicando;
                ultimoExp = t2.Exponente;
                if (ultimoExp < 0)
                {
                    v += t1.Multiplicando;
                    break;
                }
                t1 = t2;
            }
            if (ultimoExp > -1)
            {
                v = v * Math.Pow(x, ultimoExp);
            }
            return(v);
        }
Пример #10
0
        double IPolinomio.Resolver(double x)
        {
            double v, ultimoExp;
            IList<Termino> lista = _listaTerminos.Values;
            int size = lista.Count;
            Termino[] terminos = new Termino[size];
            lista.CopyTo(terminos, 0);

            Termino t1 = terminos[size - 1];
            v = t1.Multiplicando;
            ultimoExp = t1.Exponente;

            for (int i = size - 2; i > -1&&ultimoExp>0; i--)
            {
                Termino t2 = terminos[i];

                double grado = t1.Exponente - t2.Exponente;
                double pot = Math.Pow(x, grado);
                v = v * pot;
                v+=t2.Multiplicando;
                ultimoExp = t2.Exponente;
                if (ultimoExp < 0)
                {
                    v += t1.Multiplicando;
                    break;
                }
                t1 = t2;
            }
            if (ultimoExp > -1)
                v = v * Math.Pow(x, ultimoExp);
            return v;
        }
Пример #11
0
        void IPolinomio.Insertar(Termino t)
        {
            double exponente = t.Exponente;

            if (_listaTerminos.ContainsKey(exponente))
            {
                Termino t2 = _listaTerminos[exponente];
                t2.Multiplicando = t2.Multiplicando + t.Multiplicando;
            }
            else
            {
                _listaTerminos.Add(exponente, t);
            }
        }