Frazione per la 3E

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;
	}

}