Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- /*-----------------------------STEG_1----------------------------------------*/
- public class RatNum {
- private int denominator;
- private int numerator;
- private int heltal;
- public static int sgd (int m, int n){
- if (m == 0 || n == 0){
- throw new IllegalArgumentException("Error sgd, m or n is 0.");
- }
- m = Math.abs(m);
- n = Math.abs(n);
- int r = m % n;
- while(r != 0){
- m = n;
- n = r;
- r = m % n;
- }
- return n;
- }
- /*-----------------------------STEG_2-----------------------------------*/
- public RatNum(){
- numerator = 0;
- denominator = 1;
- }
- public RatNum(int a){
- numerator = a;
- denominator = 1;
- }
- public RatNum(int a, int b){
- if (b == 0){
- throw new NumberFormatException("Denominator = 0");
- }
- if(b<0){
- a = -a;
- b = -b;
- }
- if(a==0){
- numerator = a;
- denominator = b;
- }
- else{
- numerator = a/RatNum.sgd(a,b);
- denominator = b/RatNum.sgd(a,b);
- }
- }
- public RatNum(RatNum r){ /*Koperingskonstruktorn*/
- numerator=r.numerator;
- denominator=r.denominator;
- }
- public int getNumerator(){
- return numerator;
- }
- public int getDenominator(){
- return denominator;
- }
- /*-----------------------------STEG_3-----------------------------------*/
- @Override
- public String toString(){
- if(numerator > denominator){
- heltal = numerator/denominator;
- numerator = numerator%denominator;
- String tal = heltal + " " + numerator + "/" + denominator;
- return tal;
- }
- if(numerator < 0 || denominator < 0){
- heltal = numerator/denominator;
- if (heltal != 0){
- numerator = -numerator%denominator;
- String tal = heltal + " " + numerator + "/" + denominator;
- return tal;
- }
- }
- String tal = numerator + "/" + denominator;
- return tal;
- }
- public double toDouble(){
- double tal = (double) numerator/ (double) denominator;
- return tal;
- }
- public static RatNum parse(String s){
- if(!s.contains("/")){
- s = s +"/1";
- }
- String num = s.substring(0, s.indexOf("/"));
- String den = s.substring(s.lastIndexOf("/")+1);
- int a = Integer.parseInt(num);
- int b = Integer.parseInt(den);
- return new RatNum(a,b);
- }
- public RatNum (String c){
- this(RatNum.parse(c));
- }
- public Object clone(){
- return new RatNum(numerator, denominator);
- }
- public boolean equals(RatNum r){
- if (r == null){
- throw new IllegalArgumentException("Error. The value you entered is null");
- }
- return(r.numerator == numerator && r.denominator == denominator);
- }
- public boolean lessThan(RatNum r){
- int num1 = numerator * r.denominator;
- int num2 = r.numerator * denominator;
- return(num1 < num2);
- }
- public RatNum add(RatNum r){
- numerator = (numerator*r.denominator) + (denominator*r.numerator);
- denominator = (denominator * r.denominator);
- return new RatNum(numerator,denominator);
- }
- public RatNum sub(RatNum r){
- numerator = (numerator*r.denominator) - (denominator*r.numerator);
- denominator = (denominator * r.denominator);
- return new RatNum(numerator, denominator);
- }
- public RatNum mul(RatNum r){
- numerator = (numerator*r.numerator);
- denominator = (denominator * r.denominator);
- return new RatNum(numerator, denominator);
- }
- public RatNum div(RatNum r){
- numerator = (numerator*r.denominator);
- denominator = (denominator * r.numerator);
- return new RatNum(numerator, denominator);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement