public Numero maximoComunDivisorCon(Entero otroEntero) { Numero resto = this.restoCon(otroEntero); dynamic restoDinamico = Convert.ChangeType(resto, resto.GetType()); return(maximoComunDivisorAux(otroEntero, restoDinamico)); }
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)); }
private Numero divisionEnteraAux(Entero divisor) { if (this.value == divisor.getValue()) { return(new Unidad()); } return(new Entero(value / divisor.getValue())); }
public Entero maximoComunDivisorCon(Entero otroEntero) { if (otroEntero.esCero()) { return(this); } else { return(otroEntero.maximoComunDivisorCon(this.restoCon(otroEntero))); } }
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)); }
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)); }
private static Fraccion dividirCoprimos(Entero dividendo, Entero divisor) { return(new Fraccion(dividendo, divisor)); }
private static Entero dividirCoprimos(Entero dividendo, Unidad divisor) { return(new Entero(dividendo.getValue())); }
public static Numero dividir(Unidad dividendo, Entero divisor) { return(new Fraccion(new Entero(1), divisor)); }
public static Numero dividir(Cero dividendo, Entero divisor) { return(new Cero()); }
public static Numero dividir(Entero dividendo, Unidad divisor) { return(new Entero(dividendo.getValue())); }
private Numero maximoComunDivisorAux(Entero otroEntero, Entero resto) { return(otroEntero.maximoComunDivisorCon(resto)); }
private Numero porNumero(Entero multiplicador) { return(numerador.por(multiplicador).dividido(denominador)); }
private Numero maximoComunDivisorAux(Entero otroEntero, Cero divisor) { return(new Entero(otroEntero.getValue())); }
private Numero sumarNumero(Entero sumando) { return(new Entero(sumando.getValue())); }
private Numero porNumero(Entero multiplicador) { return(new Entero(multiplicador.getValue())); }
public Entero divisionEntera(Entero divisor) { return(new Entero(value / divisor.getValue())); }
public Entero restoCon(Entero divisor) { return(new Entero(value % divisor.getValue())); }
private Fraccion(Entero numerador, Entero denominador) { this.numerador = numerador; this.denominador = denominador; }
private Numero divididoNumero(Entero divisor) { return(numerador.dividido(denominador.por(divisor))); }
private Cero divisionEnteraAux(Entero divisor) { return(new Cero()); }
private Numero divididoNumero(Entero divisor) { return(Fraccion.dividir(this, divisor)); }
private Numero divididoNumero(Entero divisor) { return(Fraccion.dividir(new Unidad(), divisor)); }
private Numero sumarNumero(Entero sumando) { Entero nuevoNumerador = (Entero)denominador.por(sumando).mas(numerador); return(dividir(nuevoNumerador, denominador)); }
private Numero divididoNumero(Entero divisor) { return(new Cero()); }
private Numero maximoComunDivisorAux(Entero otroEntero, Unidad divisor) { return(new Unidad()); }