コード例 #1
0
ファイル: Entero.cs プロジェクト: santi-alem/IngSoft1-2017-2c
 public Entero maximoComunDivisorCon(Entero otroEntero)
 {
     if (otroEntero.esCero())
     {
         return(this);
     }
     else
     {
         return(otroEntero.maximoComunDivisorCon(this.restoCon(otroEntero)));
     }
 }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
 private Numero maximoComunDivisorAux(Entero otroEntero, Entero resto)
 {
     return(otroEntero.maximoComunDivisorCon(resto));
 }