public Entero maximoComunDivisorCon(Entero otroEntero) { if (otroEntero.esCero()) { return(this); } else { return(otroEntero.maximoComunDivisorCon(this.restoCon(otroEntero))); } }
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)); }
public abstract Numero porEntero(Entero multiplicador);
public abstract Numero masEntero(Entero sumando);
public override Numero dividirEntero(Entero dividendo) { throw new NotImplementedException(); }
public override Numero porEntero(Entero multiplicador) { throw new NotImplementedException(); }
public override Numero masEntero(Entero sumando) { throw new NotImplementedException(); }
public Entero divisionEntera(Entero divisor) { return(new Entero(value / divisor.getValue())); }
override public Numero dividirEntero(Entero dividendo) { return(Fraccion.dividir(dividendo, this)); }
override public Numero porEntero(Entero multiplicador) { return(new Entero(value * multiplicador.getValue())); }
override public Numero masEntero(Entero sumando) { return(new Entero(value + sumando.getValue())); }
override public Numero masEntero(Entero sumando) { Numero nuevoNumerador = denominador.por(sumando).mas(numerador); return(nuevoNumerador.dividido(denominador)); }
private Fraccion(Entero numerador, Entero denominador) { this.numerador = numerador; this.denominador = denominador; }
override public Numero dividirEntero(Entero dividendo) { return(dividendo.por(denominador).dividido(numerador)); }
public abstract Numero dividirEntero(Entero dividendo);
public Entero restoCon(Entero divisor) { return(new Entero(value % divisor.getValue())); }
override public Numero porEntero(Entero multiplicador) { return(numerador.por(multiplicador).dividido(denominador)); }