2 public class Fraccion implements OperFrac, ComparaFrac {
15 public void setNum(int n) {
19 public void setDen(int d) {
28 public Fraccion(int num, int den) throws CeroDenExc {
30 throw new CeroDenExc(num);
36 public Fraccion(Fraccion f) {
41 public String toString() {
47 return getNum() + "/" + getDen();
50 public Fraccion mas(Fraccion f) {
52 return new Fraccion(getNum() * f.getDen() + f.getNum() * getDen(),
53 getDen() * f.getDen());
54 } catch (CeroDenExc e) {
55 return new Fraccion(); // Nunca deberia pasar
59 public Fraccion menos(Fraccion f) {
61 return new Fraccion(getNum() * f.getDen() - f.getNum() * getDen(),
62 getDen() * f.getDen());
63 } catch (CeroDenExc e) {
64 return new Fraccion(); // Nunca deberia pasar
68 public int compareTo(Fraccion f) {
69 if (getNum() * f.getDen() > getDen() * f.getNum())
71 if (getNum() * f.getDen() < getDen() * f.getNum())
76 private static int mcd(int num, int den) {
77 int max = Math.abs(Math.max(num, den));
78 int min = Math.abs(Math.min(num, den));
82 return mcd(min, max % min);
85 private void normalizar() {
86 int d = mcd(getNum(), getDen());
93 // vim: set et sw=4 sts=4 :