Tema: Clase Números Fraccionarios
Esta clase la he implementado para un proyecto de la facultad... a cualquiera puede servirle. He tratado de que sea lo más orientada a objetos posible.
Código PHP:
//
public class NumerosFraccionarios {
private int numerador;
private int denominador;
public NumerosFraccionarios(int numerador, int denominador) {
this.numerador = numerador;
this.denominador = denominador;
}
public NumerosFraccionarios(NumerosFraccionarios fraccion) {
numerador = fraccion.getNumerador();
denominador = fraccion.getDenominador();
}
public int getDenominador() {
return denominador;
}
public void setDenominador(int denominador) {
this.denominador = denominador;
}
public int getNumerador() {
return numerador;
}
public void setNumerador(int numerador) {
this.numerador = numerador;
}
// Le sumamos a nuestro objeto NumerosFraccionarios otro objeto NumerosFraccionarios
public void suma(NumerosFraccionarios fraccion) {
int den = fraccion.getDenominador();
this.numerador = this.numerador * den + fraccion.getNumerador() * this.denominador;
this.denominador = this.denominador * den;
}
// Le sumamos a nuestro objeto NumerosFraccionarios otro objeto NumerosFraccionarios
public void resta(NumerosFraccionarios fraccion) {
int den = fraccion.getDenominador();
this.numerador = this.numerador * den - fraccion.getNumerador() * this.denominador;
this.denominador = this.denominador * den;
}
// Multiplicamos nuestro objeto NumerosFraccionarios por otro objeto NumerosFraccionarios
public void multiplica(NumerosFraccionarios fraccion) {
this.numerador *= fraccion.getNumerador();
this.denominador *= fraccion.getDenominador();
}
// Dividimos nuestro objeto NumerosFraccionarios por otro objeto NumerosFraccionarios
public void divide(NumerosFraccionarios fraccion) {
this.numerador *= fraccion.getDenominador();
this.denominador *= fraccion.getNumerador();
}
// Lleva nuestro objeto NumerosFraccionarios a la fraccion irreducible
// Si 3/4, la fracción irreducible sería 3/4; si 2/4, la fracción irreducible sería 1/2
public void irreducible() {
int num = Math.abs(this.numerador);
int den = Math.abs(this.denominador);
int resto = 0;
while (den != 0) {
resto = num % den;
num = den;
den = resto;
}
this.numerador /= num;
this.denominador /= num;
}
}
Hasta pronto!