Crear la clase Fraccion, que tendrá los atributos y funciones necesarios para realizar las operaciones básicas que se pueden realizar con fracciones.
public class Fraccion { private int numerador; private int denominador; public Fraccion(int num){ this(num, 1); } public Fraccion(int num, int den){ if (den == 0) throw new RuntimeException(); numerador = num; denominador = den; } public Fraccion inversa() { Fraccion aux; aux = new Fraccion(denominador, numerador); return aux; } public Fraccion producto(Fraccion f) { Fraccion resultado; int numRes, denRes; numRes = f.numerador * numerador; denRes = f.denominador * denominador; resultado = new Fraccion(numRes, denRes); return resultado; } @Override public String toString() { return numerador+"/"+denominador; } public Fraccion opuesta() { Fraccion aux; aux = new Fraccion(-numerador, denominador); return aux; } public static int mcd(int num1, int num2) { int aux; //Algoritmo de Euclides while (num2 != 0){ aux = num1; num1 = num2; num2 = aux % num2; } return num1; } public static int mcm(int num1, int num2) { int mcm; int a=num1, b=num2; while (num1 != num2){ if (num1>num2) num1 = num1-num2; else num2 = num2-num1; } mcm = a*b/num2; return mcm; } public Fraccion suma(Fraccion f2) { Fraccion resultado; int minimo, num; minimo = mcm(denominador, f2.denominador); num = (minimo/denominador)*numerador + (minimo/f2.denominador)*f2.numerador; resultado = new Fraccion(num, minimo); return resultado; } public boolean equals(Fraccion f2) { return numerador==f2.numerador & denominador==f2.denominador; } public int compareTo(Fraccion f2) { double prim, segun; int res; prim = (double)numerador/denominador; segun = (double)f2.numerador/f2.denominador; if (prim < segun) res = -1; else if (prim > segun) res = 1; else res = 0; return res; } public Fraccion simplificar() { int divisor; divisor = mcd(numerador, denominador); numerador = numerador/divisor; denominador = denominador/divisor; return this; } }
No hay comentarios:
Publicar un comentario