Sunteți pe pagina 1din 2

import java.util.

Scanner;
//creating class rational
public class Rational {
static Scanner in = new Scanner(System.in);
private int numerator, denominator;
// first constructor
public Rational() {
numerator = 0;
denominator = 1;
}
// second constructor
public Rational(int x) {
numerator = x;
denominator = 1;
}
// third constructor
public Rational(int x, int y) {
numerator = x;
denominator = y;
if (y == 0) {
System.out.println("infinity is not a valid rational num
ber");
}
}
// gcd
public static int gcd(int m, int n) {
int r = m % n;
if (r == 0) {
return n;
} else {
return gcd(n, r);
}
}
// reducer
public Rational Reduce() {
int gcd = gcd(numerator, denominator);
numerator = numerator/gcd;
denominator = denominator/gcd;
return null;
}
// method to get decimal value of rational number
public float getValue() {
return (numerator * 1.00f) / denominator;
}
// method to add rational r
public Rational add(Rational r) {
Rational result = new Rational();
result.numerator = (numerator * r.denominator)
+ (r.numerator * denominator);
result.denominator = denominator * r.denominator;
return result;
}
// to return rational as rational i.e not as decimal
String toRational() {
return numerator + "/" + denominator;
}
//get average (works only after add
public Rational getAvg(){
denominator = denominator * 2;
return null;
}
// main method ..constructs r1,r2 and prints thier sum also prints their
// average
public static void main(String[] args) {
Rational r1 = new Rational(0, 26);
Rational r2 = new Rational(4, 34);
Rational r3 = new Rational();
r3 = r1.add(r2);
r3.Reduce();
System.out.println("sum of r1 and r2 = "+r3.toRational());
if (r1.getValue() != 0 && r2.getValue() != 0 && r1.add(r2).getVa
lue() != ((double) 1 / 0))
{ r3.getAvg();
System.out.println("Average value of r1 and r2 = "+ r3.t
oRational());
} else {
System.out.println("Cannot get the average of two number
s one of them is zero");
}
}
}

S-ar putea să vă placă și