Advertisement
Guest User

Rational.java

a guest
Nov 24th, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.10 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package rationalnumbers;
  7.  
  8. /**
  9.  *
  10.  * @author Youssef
  11.  */
  12. public class Rational
  13. {
  14.     private int num;
  15.     private int den;
  16.    
  17.     public Rational(int num, int den)
  18.     {
  19.         this.num = num;
  20.         if(den!=0)
  21.         {
  22.             this.den = den;
  23.         }
  24.         else
  25.         {
  26.             this.den = 1;
  27.         }
  28.     }
  29.    
  30.     public Rational(int wholeNumber)
  31.     {
  32.         this.num = wholeNumber;
  33.         this.den = 1;
  34.     }
  35.    
  36.     public Rational()
  37.     {
  38.         this.num = 0;
  39.         this.den = 1;
  40.     }
  41.    
  42.     public void set(int num, int den)
  43.     {
  44.         this.num = num;
  45.         if(den!=0)
  46.         {
  47.             this.den = den;
  48.         }
  49.         else
  50.         {
  51.             this.den = 1;
  52.         }
  53.     }
  54.    
  55.     public int getNum()
  56.     {
  57.         return this.num;
  58.     }
  59.    
  60.     public int getDen()
  61.     {
  62.         return this.den;
  63.     }
  64.    
  65.     public void normalize()
  66.     {
  67.         if(this.den<0)
  68.         {
  69.             this.num = this.num * -1;
  70.             this.den = this.den * -1;
  71.         }
  72.     }
  73.    
  74.     public static int hcf(int num, int den)
  75.     {
  76.         int hcf = 1;
  77.         int temp;
  78.         if(num>den)
  79.         {
  80.             temp = num;
  81.         }
  82.         else
  83.         {
  84.             temp = den;
  85.         }
  86.         for(int i=temp; i>=1; i--)
  87.             {
  88.                 if(num%i == 0 && den %i == 0)
  89.                 {
  90.                     hcf = i;
  91.                     break;
  92.                 }
  93.             }
  94.  
  95.         return hcf;
  96.     }
  97.    
  98.     public static void simplify(Rational r)
  99.     {
  100.         int x = Rational.hcf(r.num,r.den);
  101.         r.num = r.num / x;
  102.         r.den = r.den / x;
  103.     }
  104.    
  105.    
  106.     public static Rational add(Rational r1, Rational r2)
  107.     {
  108.         int x = r1.num * r2.den + r1.den * r2.num;
  109.         int y = r1.den * r2.den;
  110.         Rational result = new Rational(x,y);
  111.         Rational.simplify(result);
  112.         return result;
  113.     }
  114.    
  115.     public static Rational sub(Rational r1, Rational r2)
  116.     {
  117.         int x = r1.num * r2.den - r1.den * r2.num;
  118.         int y = r1.den * r2.den;
  119.         Rational result = new Rational(x,y);
  120.         Rational.simplify(result);
  121.         return result;
  122.     }
  123.    
  124.     public static Rational multiply(Rational r1, Rational r2)
  125.     {
  126.         int x = r1.num * r2.num;
  127.         int y = r1.den * r2.den;
  128.         Rational result = new Rational(x,y);
  129.         Rational.simplify(result);
  130.         return result;
  131.     }
  132.    
  133.     public static Rational divide(Rational r1, Rational r2)
  134.     {
  135.         int x = r1.num / r2.num;
  136.         int y = r1.den / r2.den;
  137.         Rational result = new Rational(x,y);
  138.         Rational.simplify(result);
  139.         return result;
  140.     }
  141.    
  142.     public Rational add(Rational r2)
  143.     {
  144.         int x = this.num * r2.den + this.den * r2.num;
  145.         int y = this.den * r2.den;
  146.         Rational result = new Rational(x,y);
  147.         Rational.simplify(result);
  148.         return result;
  149.     }
  150.    
  151.     public Rational sub(Rational r2)
  152.     {
  153.         int x = this.num * r2.den - this.den * r2.num;
  154.         int y = this.den * r2.den;
  155.         Rational result = new Rational(x,y);
  156.         Rational.simplify(result);
  157.         return result;
  158.     }
  159.    
  160.     public Rational multiply(Rational r2)
  161.     {
  162.         int x = this.num * r2.num;
  163.         int y = this.den * r2.den;
  164.         Rational result = new Rational(x,y);
  165.         Rational.simplify(result);
  166.         return result;
  167.     }
  168.    
  169.     public Rational divide(Rational r2)
  170.     {
  171.         int x = this.num / r2.num;
  172.         int y = this.den / r2.den;
  173.         Rational result = new Rational(x,y);
  174.         Rational.simplify(result);
  175.         return result;
  176.     }
  177.    
  178.     @Override
  179.     public String toString()
  180.     {
  181.         return (+this.num+"/"+this.den);
  182.     }
  183.    
  184.     public boolean isEqual(Rational other)
  185.     {
  186.         return (this.num * other.den == this.den * other.num);
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement