Beispiel #1
0
        public Numero maximoComunDivisorCon(Entero otroEntero)
        {
            Numero  resto         = this.restoCon(otroEntero);
            dynamic restoDinamico = Convert.ChangeType(resto, resto.GetType());

            return(maximoComunDivisorAux(otroEntero, restoDinamico));
        }
Beispiel #2
0
        private Numero divididoNumero(Fraccion divisor)
        {
            Entero  nuevoNumerador      = new Entero(((Entero)this.por(divisor.getDenominador())).value);
            dynamic denominadorNoTipado = Convert.ChangeType(divisor.getNumerador(), divisor.getNumerador().GetType());

            return(Fraccion.dividir(nuevoNumerador, denominadorNoTipado));
        }
Beispiel #3
0
        private Numero divisionEnteraAux(Entero divisor)
        {
            if (this.value == divisor.getValue())
            {
                return(new Unidad());
            }

            return(new Entero(value / divisor.getValue()));
        }
Beispiel #4
0
 public Entero maximoComunDivisorCon(Entero otroEntero)
 {
     if (otroEntero.esCero())
     {
         return(this);
     }
     else
     {
         return(otroEntero.maximoComunDivisorCon(this.restoCon(otroEntero)));
     }
 }
Beispiel #5
0
        public Numero restoCon(Entero divisor)
        {
            if (value % divisor.getValue() == 0)
            {
                return(new Cero());
            }

            if (value % divisor.getValue() == 1)
            {
                return(new Unidad());
            }

            return(new Entero(value % divisor.getValue()));
        }
        public static Numero dividir(Entero dividendo, Entero divisor)
        {
            Numero maximoComunDivisor = dividendo.maximoComunDivisorCon(divisor);
            Numero numerador          = dividendo.divisionEntera(maximoComunDivisor);
            Numero denominador        = divisor.divisionEntera(maximoComunDivisor);

            dynamic numeradorNoTipado   = Convert.ChangeType(numerador, numerador.GetType());
            dynamic denominadorNoTipado = Convert.ChangeType(denominador, denominador.GetType());

            Assert.IsFalse(numerador is Entero && numerador.Equals(new Entero(1)));
            Assert.IsFalse(numerador is Entero && numerador.Equals(new Entero(0)));

            return(dividirCoprimos(numeradorNoTipado, denominadorNoTipado));
        }
Beispiel #7
0
        public void test06SumaDeFracciones()
        {
            Numero sieteDecimos = new Entero(7).dividido(new Entero(10));

            Assert.AreEqual(sieteDecimos, unQuinto.mas(unMedio));

            /*
             * La suma de fracciones es:
             *
             * a/b + c/d = (a.d + c.b) / (b.d)
             *
             * SI ESTAN PENSANDO EN LA REDUCCION DE FRACCIONES NO SE PREOCUPEN!
             * TODAVIA NO SE ESTA TESTEANDO ESE CASO
             */
        }
        public static Numero dividir(Entero dividendo, Entero divisor)
        {
            if (divisor.esCero())
            {
                throw new Exception(Numero.DESCRIPCION_DE_ERROR_NO_SE_PUEDE_DIVIDIR_POR_CERO);
            }
            if (dividendo.esCero())
            {
                return(dividendo);
            }

            Entero maximoComunDivisor = dividendo.maximoComunDivisorCon(divisor);
            Entero numerador          = dividendo.divisionEntera(maximoComunDivisor);
            Entero denominador        = divisor.divisionEntera(maximoComunDivisor);

            if (denominador.esUno())
            {
                return(numerador);
            }

            return(new Fraccion(numerador, denominador));
        }
 private static Fraccion dividirCoprimos(Unidad dividendo, Entero divisor)
 {
     return(new Fraccion(new Entero(1), divisor));
 }
Beispiel #10
0
 private static Fraccion dividirCoprimos(Entero dividendo, Entero divisor)
 {
     return(new Fraccion(dividendo, divisor));
 }
Beispiel #11
0
 private static Entero dividirCoprimos(Entero dividendo, Unidad divisor)
 {
     return(new Entero(dividendo.getValue()));
 }
Beispiel #12
0
 public static Numero dividir(Unidad dividendo, Entero divisor)
 {
     return(new Fraccion(new Entero(1), divisor));
 }
Beispiel #13
0
 public static Numero dividir(Cero dividendo, Entero divisor)
 {
     return(new Cero());
 }
Beispiel #14
0
 public static Numero dividir(Entero dividendo, Unidad divisor)
 {
     return(new Entero(dividendo.getValue()));
 }
Beispiel #15
0
 private Numero maximoComunDivisorAux(Entero otroEntero, Entero resto)
 {
     return(otroEntero.maximoComunDivisorCon(resto));
 }
Beispiel #16
0
 private Numero porNumero(Entero multiplicador)
 {
     return(numerador.por(multiplicador).dividido(denominador));
 }
Beispiel #17
0
 private Numero maximoComunDivisorAux(Entero otroEntero, Cero divisor)
 {
     return(new Entero(otroEntero.getValue()));
 }
Beispiel #18
0
 private Numero sumarNumero(Entero sumando)
 {
     return(new Entero(sumando.getValue()));
 }
Beispiel #19
0
 private Numero porNumero(Entero multiplicador)
 {
     return(new Entero(multiplicador.getValue()));
 }
Beispiel #20
0
 public Entero divisionEntera(Entero divisor)
 {
     return(new Entero(value / divisor.getValue()));
 }
Beispiel #21
0
 public Entero restoCon(Entero divisor)
 {
     return(new Entero(value % divisor.getValue()));
 }
Beispiel #22
0
 private Fraccion(Entero numerador, Entero denominador)
 {
     this.numerador   = numerador;
     this.denominador = denominador;
 }
Beispiel #23
0
 private Numero divididoNumero(Entero divisor)
 {
     return(numerador.dividido(denominador.por(divisor)));
 }
Beispiel #24
0
 private Cero divisionEnteraAux(Entero divisor)
 {
     return(new Cero());
 }
Beispiel #25
0
 private Numero divididoNumero(Entero divisor)
 {
     return(Fraccion.dividir(this, divisor));
 }
Beispiel #26
0
 private Numero divididoNumero(Entero divisor)
 {
     return(Fraccion.dividir(new Unidad(), divisor));
 }
Beispiel #27
0
        private Numero sumarNumero(Entero sumando)
        {
            Entero nuevoNumerador = (Entero)denominador.por(sumando).mas(numerador);

            return(dividir(nuevoNumerador, denominador));
        }
Beispiel #28
0
 private Numero divididoNumero(Entero divisor)
 {
     return(new Cero());
 }
Beispiel #29
0
 private Numero maximoComunDivisorAux(Entero otroEntero, Unidad divisor)
 {
     return(new Unidad());
 }