Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.24 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3.  
  4. /*-----------------------------STEG_1----------------------------------------*/
  5.  
  6. public class RatNum {
  7. private int denominator;
  8. private int numerator;
  9. private int heltal;
  10.  
  11.  
  12. public static int sgd (int m, int n){
  13. if (m == 0 || n == 0){
  14. throw new IllegalArgumentException("Error sgd, m or n is 0.");
  15. }
  16. m = Math.abs(m);
  17. n = Math.abs(n);
  18. int r = m % n;
  19. while(r != 0){
  20. m = n;
  21. n = r;
  22. r = m % n;
  23. }
  24. return n;
  25. }
  26.  
  27. /*-----------------------------STEG_2-----------------------------------*/
  28.  
  29. public RatNum(){
  30. numerator = 0;
  31. denominator = 1;
  32. }
  33.  
  34. public RatNum(int a){
  35.  
  36. numerator = a;
  37. denominator = 1;
  38. }
  39.  
  40. public RatNum(int a, int b){
  41.  
  42. if (b == 0){
  43. throw new NumberFormatException("Denominator = 0");
  44. }
  45.  
  46. if(b<0){
  47. a = -a;
  48. b = -b;
  49. }
  50.  
  51. if(a==0){
  52. numerator = a;
  53. denominator = b;
  54. }
  55. else{
  56. numerator = a/RatNum.sgd(a,b);
  57. denominator = b/RatNum.sgd(a,b);
  58. }
  59.  
  60. }
  61.  
  62. public RatNum(RatNum r){ /*Koperingskonstruktorn*/
  63. numerator=r.numerator;
  64. denominator=r.denominator;
  65.  
  66. }
  67.  
  68. public int getNumerator(){
  69. return numerator;
  70. }
  71.  
  72. public int getDenominator(){
  73. return denominator;
  74.  
  75. }
  76.  
  77. /*-----------------------------STEG_3-----------------------------------*/
  78.  
  79. @Override
  80. public String toString(){
  81.  
  82. if(numerator > denominator){
  83.  
  84. heltal = numerator/denominator;
  85. numerator = numerator%denominator;
  86. String tal = heltal + " " + numerator + "/" + denominator;
  87. return tal;
  88. }
  89.  
  90. if(numerator < 0 || denominator < 0){
  91. heltal = numerator/denominator;
  92. if (heltal != 0){
  93. numerator = -numerator%denominator;
  94. String tal = heltal + " " + numerator + "/" + denominator;
  95. return tal;
  96. }
  97. }
  98.  
  99. String tal = numerator + "/" + denominator;
  100. return tal;
  101. }
  102.  
  103. public double toDouble(){
  104.  
  105. double tal = (double) numerator/ (double) denominator;
  106. return tal;
  107. }
  108.  
  109.  
  110. public static RatNum parse(String s){
  111.  
  112.  
  113. if(!s.contains("/")){
  114. s = s +"/1";
  115. }
  116.  
  117. String num = s.substring(0, s.indexOf("/"));
  118. String den = s.substring(s.lastIndexOf("/")+1);
  119. int a = Integer.parseInt(num);
  120. int b = Integer.parseInt(den);
  121. return new RatNum(a,b);
  122. }
  123.  
  124. public RatNum (String c){
  125. this(RatNum.parse(c));
  126.  
  127. }
  128.  
  129. public Object clone(){
  130.  
  131. return new RatNum(numerator, denominator);
  132.  
  133. }
  134.  
  135. public boolean equals(RatNum r){
  136.  
  137. if (r == null){
  138. throw new IllegalArgumentException("Error. The value you entered is null");
  139. }
  140.  
  141. return(r.numerator == numerator && r.denominator == denominator);
  142. }
  143.  
  144. public boolean lessThan(RatNum r){
  145.  
  146. int num1 = numerator * r.denominator;
  147. int num2 = r.numerator * denominator;
  148.  
  149. return(num1 < num2);
  150.  
  151. }
  152.  
  153. public RatNum add(RatNum r){
  154.  
  155. numerator = (numerator*r.denominator) + (denominator*r.numerator);
  156. denominator = (denominator * r.denominator);
  157.  
  158. return new RatNum(numerator,denominator);
  159.  
  160. }
  161.  
  162. public RatNum sub(RatNum r){
  163.  
  164. numerator = (numerator*r.denominator) - (denominator*r.numerator);
  165. denominator = (denominator * r.denominator);
  166.  
  167. return new RatNum(numerator, denominator);
  168. }
  169.  
  170. public RatNum mul(RatNum r){
  171.  
  172. numerator = (numerator*r.numerator);
  173. denominator = (denominator * r.denominator);
  174.  
  175. return new RatNum(numerator, denominator);
  176. }
  177.  
  178. public RatNum div(RatNum r){
  179. numerator = (numerator*r.denominator);
  180. denominator = (denominator * r.numerator);
  181.  
  182. return new RatNum(numerator, denominator);
  183. }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement