3 public class Fraccion extends Observable implements OperFrac, ComparaFrac {
16 public void setNum(int n) {
22 public void setDen(int d) {
33 public Fraccion(int num, int den) throws CeroDenExc {
35 throw new CeroDenExc(num);
41 public Fraccion(Fraccion f) {
46 public String toString() {
52 return getNum() + "/" + getDen();
55 public Fraccion mas(Fraccion f) {
57 return new Fraccion(getNum() * f.getDen() + f.getNum() * getDen(),
58 getDen() * f.getDen());
59 } catch (CeroDenExc e) {
60 return new Fraccion(); // Nunca deberia pasar
64 public Fraccion menos(Fraccion f) {
66 return new Fraccion(getNum() * f.getDen() - f.getNum() * getDen(),
67 getDen() * f.getDen());
68 } catch (CeroDenExc e) {
69 return new Fraccion(); // Nunca deberia pasar
73 public int compareTo(Fraccion f) {
74 if (getNum() * f.getDen() > getDen() * f.getNum())
76 if (getNum() * f.getDen() < getDen() * f.getNum())
81 private static int mcd(int num, int den) {
82 int max = Math.abs(Math.max(num, den));
83 int min = Math.abs(Math.min(num, den));
87 return mcd(min, max % min);
90 private void normalizar() {
91 int d = mcd(getNum(), getDen());
100 // vim: set et sw=4 sts=4 :