# Rational number | Computer Science homework help

Define a class for rational numbers. A rational number is a number that can be represented as the quotient of two integers. For example, 1/2, 3/4, 64/2, and so forth are all rational numbers. (By ½, etc we mean the everyday meaning of the fraction, not the integer division this expression would produce in a C++ program).

Represent rational numbers as two values of type int, one for the numerator and one for the denominator. Call the class rationalNum

Include a constructor with two arguments that can be used to set the member variables of an object to any legitimate value. Also include a constructor that has only a single parameter of type int; call this single parameter whole_number and define the constructor so that the object will be initialized to the rational number whole_number/1. Also include a default constructor that initializes an object to 0    (that is, to 0/1).

Overload the input and output operators >> and <<. Numbers are to be input and output in the form 1/2, 15/32, 300/401, and so forth.  Note that the numerator, the denominator, or both may contain a minus sign, so -1/2, 15/32, -300/-400 are all possible input. The input operator, >>, reads the string 15/32 as

Overload all of the following operators so that they correctly apply to the type rationalNum: ==, <, >, +, -, *, and /.

Write a test program to test your class.

[Hints: Two rational numbers a/b and c/d are equal if a*d equals c*b. If b and d are positive numbers, a/b is less than c/d provided a*d is less than c*b.

1. (a/b + c/d) is given by:

Numerator =a*d + c*b

Denominator = b*d

1. (a/b – c/d) is given by

Numerator = a*d – c*b

Denominator = b*d

1. (a/b * c/d) is given by

Numerator = a*c

Denominator = b*d

1. (a/b divided by c/d) is given by

Numerator = a*d

Denominator = b*c

]

The numerators and denominators of rational numbers tend to become large, so it is better to normalize intermediate results. This is achieved by calling a method, normalize(), on the number as shown:

cout << “The sum of the two numbers is: “ << result.normalize() << endl;

Here’s the function that you call to normalize the number. Make it a member function of the rationalNum class. It is called in the driver program to:

• Display each input number read
• Display the results of the arithmetic operations.

rationalNumber rationalNumber::normalize()

{

rationalNum temp;

int x,y,z;

x=numerator;

y=denominator;

z=(x*x < y*y)? (z=x):(z=y);

for (int i=2; i*i<=z*z; i++){

while ((x%i)==0 && (y%i)==0 )

{

x=x/i;

y=y/i;

z=z/i;

}

}

if (y<0){

temp.numerator=-x;

temp.denominator=-y;

}

else {

temp.numerator=x;

temp.denominator=y;

}

return temp;

}

Here’s the output of test run of the driver program using rationalNum objects.

E:neu>rationalMain

Enter the first value:  2/3

Enter the second value: 3/5

value1 is                       2/3

Normalized value1:              2/3

value 2 is:                     3/5

Normalized value2:                      3/5

Normalized sum:         19/15

subtraction                     1/15

Normalized difference:  1/15

multiplication                   6/15

Normalized product:     2/5

division                        10/9

Normalized quotient:    10/9

is 2/3 < 3/5 ?  no

is 2/3 > 3/5 ?  yes

is 2/3 =  3/5 ?         no

Press any key to continue . . .

## Calculate the price of your order

550 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
\$26
The price is based on these factors:
Number of pages
Urgency
Basic features
• Free title page and bibliography
• Unlimited revisions
• Plagiarism-free guarantee
• Money-back guarantee
On-demand options
• Writer’s samples
• Part-by-part delivery
• Overnight delivery
• Copies of used sources
Paper format
• 275 words per page
• 12 pt Arial/Times New Roman
• Double line spacing
• Any citation style (APA, MLA, Chicago/Turabian, Harvard)

# Our guarantees

Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.

### Money-back guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

### Zero-plagiarism guarantee

Each paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.

### Free-revision policy

Thanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.