Inserire nei costruttori e nei vari metodi il controllo delle situazioni di errore ovvero quando il risultato è impossibile (denominatore 0). In tal caso non deve essere eseguito il calcolo sulla frazione e deve essere visualizzato un messaggio di avviso con i valori delle frazioni coinvolte nell’operazione.
Frazione.java
public class Frazione { public int num, den; public Frazione(int numVal, int denVal) { num = numVal; den = denVal; } public Frazione() { num = 0; den = 1; } public Frazione(int numero) { num = numero; den = 1; } public void add(Frazione f) { int denComune = den * f.den; num = num * f.den + f.num * den; den = denComune; int d = Int.mcd(num, den); num /= d; den /= d; } public void sot(Frazione f) { int denComune = den * f.den; num = num * f.den - f.num * den; den = denComune; int d = Int.mcd(num, den); num /= d; den /= d; } public void mol(Frazione f) { num *= f.num; den *= f.den; int d = Int.mcd(num, den); num /= d; den /= d; } public void div(Frazione f) { num *= f.den; den *= f.num; int d = Int.mcd(num, den); num /= d; den /= d; } @Override public String toString() { return num + "/" + den; } }
Int.java
public class Int { // Algoritmo di Euclide per la ricerca del MCD public static int mcd(int a, int b) { int t; while (b != 0) { t = b; b = a % b; a = t; } return a; } }