Sei sulla pagina 1di 2

/**

* Tale programma scompone una frazione hai suoi minimi termini


*
* @Matteo Bolognesi
* @21/11/2016
*/
//importazioni
import java.util.Scanner;

//intestazine
public class SemplificaFrazioneV2
{
public static void main (String args[]){
//dichiarazione
double n, d, MCD=0, k;
int dim1=0, dim2=0, i1=0, i2=0, c=1;
Scanner tastiera = new Scanner(System.in);
//controllo degli input
try{
do{
System.out.print("Inserisci il valore del numeratore= ");
n = tastiera.nextDouble();
if(n!=(int)n || n<0){
System.out.println("Il numeratore deve essere intero e non negativo");
}
}while(n!=(int)n || n<0);
do{
System.out.print("Inserisci il valore del denomiratore= ");
d = tastiera.nextDouble();
if(d!=(int)d || d<=0){
System.out.println("Il denominatore deve essere intero, non negativo e
diverso da zero");
}
}while(d!=(int)d || d<=0);

//istruzione per determinare i divisori di n


for(k=1; k<=n; k++){
if(n%k==0){
dim1++;
}
}
double vett[]= new double [dim1];
System.out.println(" ");
System.out.println("Divisori del numeratore:");
for(k=1; k<=n; k++){
if(n%k==0){
vett[i1]=k;
System.out.println("Fattore n�"+c+" = "+(int)vett[i1]);
c++;
i1++;
}
}

//istruzioni per determinare i divisori di d


for(k=1; k<=d; k++){
if(d%k==0){
dim2++;
}
}
double vetto[]= new double [dim2];
System.out.println(" ");
System.out.println("Divisori del denominatore:");
c=0;
for(k=1; k<=d; k++){
if(d%k==0){
vetto[i2]=k;
System.out.println("Fattore n�"+c+" = "+(int)vetto[i2]);
c++;
i2++;
}
}

//istruzioni per determinare il Massimo


for(i1=0;i1<dim1;i1++){
for(i2=0;i2<dim2;i2++){
if(vetto[i2]==vett[i1]){
MCD=vett[i1];

}
}
}
System.out.println(" ");
System.out.println("Massimo Comune Divisore = "+(int)MCD);

//determinazione della frazione ridotta ai minimi termini


n=n/MCD;
d=d/MCD;

//output di della frazione scomposta


System.out.println("Frazione scomposta = "+(int)n+"/"+(int)d);
}catch(java.util.InputMismatchException exc){
//controllo delle eccezioni
System.out.println(exc);
System.out.println("Non � possibile eserguire il programma : errore
nell'inserimento dei dati");
}
System.out.println("Fine elaborazione");//Fine ProgrammaSemplificaFrazioneV2
}
}