Advertisement
tegusta

Frazione

Oct 24th, 2012
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.91 KB | None | 0 0
  1. /**
  2.  * @(#)Frazione.java
  3.  * @author Massimiliano
  4.  * @version 1.00 2012/10/24
  5.  */
  6. public class Frazione{
  7.         private long num,den;
  8.        
  9.         /**
  10.          *costruttore completo della frazione
  11.          *@param n numeratore
  12.          *@param d denominatore
  13.          *@throw Exception lancia una eccezione se $d è pari a 0 o negativo
  14.          */
  15.          public Frazione(long n, long d){
  16.              if(d==0)
  17.                 throw new IllegalArgumentException("Il denominatore deve essere diverso da 0");
  18.              else if(d<0)
  19.                 throw new IllegalArgumentException("Il denominatore deve essere positivo");
  20.              else
  21.                 num=n;
  22.                 den=d;
  23.          }//Frazione
  24.          
  25.          /**
  26.           *costruttore per un oggetto di valore 0
  27.           */
  28.           public Frazione(){
  29.              num=0;
  30.              den=1;
  31.           }//Frazione
  32.          
  33.           /**
  34.            *ritorna la frazione con $num / $den se $den è >1, altrimenti $num
  35.            *@return stringa
  36.            */
  37.           public String toString(){
  38.               if(den>1)
  39.                  return ("Frazione : "+num+"/"+den);
  40.               else
  41.                  return ("Frazione : "+num)
  42.                
  43.           }//toString
  44.          
  45.           /**
  46.            *minimizza la frazione
  47.            */
  48.           private void minimizz(){
  49.              if(num%den==0){
  50.                 num/=den;
  51.                 den=;
  52.              }//
  53.              else if(num%den==num){
  54.                 num=;
  55.                 den/=num;
  56.              }//
  57.              else{
  58.                 int []MCD={2,3,4,5,7,9,11,13};//so a priori che i possibili divisori sono questi
  59.                 for(int i=0;i<MCD.length();i++)
  60.                    if(num%MCD[i]==0 && den%MCD[i]==0){
  61.                      num/=MCD[i];
  62.                      den/=MCD[i];
  63.                    }//if
  64.              }//else
  65.           }//minimizz
  66.          
  67.           /**
  68.            *@param fraz2 frazione da sommare a this
  69.            *@return nuovo oggetto=somma fra this e $fraz2
  70.            */
  71.           public Frazione add(Frazione fraz2){
  72.               Frazione frazApp = new Frazione();
  73.               frazApp.num= (fraz2.num*den)+(num*fraz2.den);
  74.               frazApp.den= fraz2.den*den;
  75.               frazApp.minimizz();
  76.               return frazApp;
  77.           }//add
  78.          
  79.           /**
  80.            *@param fraz2 frazione da sommare a $fraz3
  81.            *@param fraz3 frazione da sommare a $fraz3
  82.            *@return somma fra $fraz2 e $fraz3
  83.            */
  84.           public Frazione add(Frazione fraz3, Frazione fraz4){
  85.               return new fraz3.add(fraz4);
  86.           }//add
  87.          
  88.           /**
  89.            *@param fraz6 frazione da sommare a this
  90.            *@return modifica oggetto=somma fra this e $fraz6
  91.            */
  92.           public void incr(Frazione fraz6){
  93.               Frazione frazApp2 = fraz6.add(this);
  94.               frazApp2.minimizz();
  95.               this.num=frazApp2.num;
  96.               this.den=frazApp2.den;
  97.           }//add
  98.          
  99. }//Frazione
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement