ciao a tutti mi scuso se non ho risposto prima ma ho risolto il problema e che ho appena avuto la possibilità di usare ora il computer.comunque grazie lo stesso. in parte lo risolto ma mi manca un metodo per fare si che non si verifichi più questo evento:
ad esempio queste due frazioni. 10/20 e 20/10 tramite il metodo di semplificazione trovo il risultato finale di 1 solo che funziona su la prima ma essendo la seconda l'iversa della prima mi sembra strano che esca lo stesso 1 e comunque dovrebbe uscire 1/2 e 1/5 oppure 0.5 e 0.2 come risultati non 1. come risolvo? per chi volesse la mia soluzione per questo problema:
codice:
package frazioni;
import java.io.PrintStream;
import java.util.InputMismatchException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class frazione {
int numeratore,denominatore;
static Scanner input = new Scanner(System.in);
static PrintStream output = new PrintStream (System.out);
public frazione(int numeratore, int denominatore) {
this.numeratore = numeratore;
this.denominatore = denominatore;
}
public void calcolaFrazione(){
try{
output.println("Numeratore:");
numeratore = input.nextInt();
output.println("Denominatore:");
denominatore = input.nextInt();
}catch (InputMismatchException exception) {
JOptionPane.showMessageDialog(null,"inserisci solo valori numerici nel numeratore e nel denominatore ");
}
System.out.println("Frazione:" + "" + numeratore + "" + "/" + "" + denominatore);
}
public int calcolaSemplificazione(){
int x=0,y=0,i,z=2,k,r;
boolean semplificata = false;
k= numeratore%z;
r =denominatore%z;
if(k==0 && r==0){
while(!semplificata){
for( i = z; i>=z;z++){
x= numeratore/i;
y=numeratore/i;
}
semplificata = true;
}
return x/y;
}else{
JOptionPane.showMessageDialog(null,"frazione irriducibile ");
semplificata =true;
return numeratore/denominatore;
}
}
}