You are on page 1of 3

PROGRAM TO DEVELOP RATIONAL NUMBER CLASS IN JAVA

EX.NO:1
DATE:
PROGRAM
import java.io.*;
public class Rational
{

private float numerator;


private float denominator;
public Rational()
{
numerator = 0;
denominator = 0;
}
public Rational(float x)
{
numerator = x;
denominator = 0;
}
public Rational(float x, float y)
{
numerator = x;
denominator = y;
}
public float getValue()
{
float result = numerator / denominator;
return result;
}
public String toString()
{
return numerator + "/" + denominator;
}
public void reducedForm()
{
if (numerator < denominator)
{
for (int i = 2; i <= numerator; i++)
{
while ((numerator % i) == 0 && (denominator % i) == 0)
{
numerator = numerator / i;
denominator = denominator / i;
}
}
}
else
{
for (int i = 2; i <= denominator; i++)
{
while ((numerator % i) == 0 && (denominator % i) == 0)
{
numerator = numerator / i;
denominator = denominator / i;
}
}
}
}
public Rational add(Rational r)
{
Rational result = new Rational();
result.denominator = denominator * r.denominator;
result.numerator = r.denominator * numerator + r.numerator *
denominator;
return result;
}
public static void main(String[] args) throws IOException
{
BufferedReader indata = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("please enter a rational number:");
String entered1 = indata.readLine();
System.out.println("please enter a rational number:");
String entered2 = indata.readLine();
float[] R1 = new float[2];
float[] R2 = new float[2];
try
{
String[] s1 = new String[2];
s1 = entered1.split("/");
for (int i = 0; i < 2; i++)
{
R1[i] = Float.parseFloat(s1[i]);
}
String[] s2 = new String[2];
s2 = entered2.split("/");
for (int i = 0; i < 2; i++)
{
R2[i] = Float.parseFloat(s2[i]);
}
Rational r1 = new Rational(R1[0], R1[1]);
Rational r2 = new Rational(R2[0], R2[1]);
Rational result = new Rational();
result = r1.add(r2);
result.reducedForm();
System.out.println("the sum = " + result);
Rational avg = new Rational();
avg.denominator = result.denominator * 2;
avg.numerator = result.numerator;
avg.reducedForm();
System.out.println("the average = " + avg);
}
catch (Exception e)
{
System.out.println("wrong insert");
}
}
}

OUTPUT:

You might also like