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