package Capitulo_4.Fracciones;

class Fraccion{
   private int numerador;
   private int denominador;

   Fraccion(int unNum, int unDen){
      int m;
      m = mcd(unNum, unDen);
      numerador = unNum/m;
      denominador = unDen/m;
   }

   String imprime(){
      String aux = "";
      if(numerador/denominador >=0)
         aux += Math.abs(numerador) +"/" +Math.abs(denominador);
      else
         aux += "-" + Math.abs(numerador) +"/" +Math.abs(denominador);
      return aux;
   }

   private int mcd(int a, int b) {
      if(b == 0) return a;
      else return mcd(b, a%b);
   }
   
   Fraccion suma(Fraccion z) {
      int unNum, unDen;
      unNum = this.numerador*z.denominador + this.denominador*z.numerador;
      unDen = this.denominador*z.denominador;
      return new Fraccion(unNum, unDen);
   }

   Fraccion resta(Fraccion z) {
      int unNum, unDen;
      unNum = this.numerador*z.denominador - this.denominador*z.numerador;
      unDen = this.denominador*z.denominador;
      return new Fraccion(unNum, unDen);
   }

   Fraccion multiplicacion(Fraccion z) {
      return new Fraccion(this.numerador*z.numerador, this.denominador*z.denominador);
   }

   Fraccion division(Fraccion z) {
      return new Fraccion(this.numerador*z.denominador, this.denominador*z.numerador);
   }

   static public void main(String args[]){
      Fraccion a = new Fraccion(63,84);
      Fraccion b = new Fraccion(45,0);
      Fraccion c = a.suma(b);
      Fraccion d = a.resta(b);
      Fraccion e = a.multiplicacion(b);
      Fraccion f = a.division(b);
 
      System.out.println(a.imprime());
      System.out.println(b.imprime());
      System.out.println(c.imprime());
      System.out.println(d.imprime());
      System.out.println(e.imprime());
      System.out.println(f.imprime());
   }
}
