Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The Float and Double classes (and the respective primitive types) offer a good representation of real values suitable for many numeric problems. However, the finite

The Float and Double classes (and the respective primitive types) offer a good representation of real values suitable for many numeric problems. However, the finite precision of those types can sometimes lead to surprising results (try to square 0.1 as float or double :( )1 . In some cases, such problems can be remedied by using a Fraction class. Implement a class Fraction that models fractions, where numerator and denominator are represented as int (or Integer) and offers arithmetic operations. A Fraction object can be created with a constructor that takes a numerator and a denominator as arguments. The Fraction class offers the public methods defined below. Note, the results of arithmetic operations should be simplified. e.g., multiplying two fractions 4/3 and 3/5 should return 4/5 (not 12/15 )^2 .

image text in transcribed

image text in transcribed

Choose appropriate types for the methods arguments and return values.

Add instance variables to represent numerator and denominator.

Implement the methods.

Implement a tester class that exercises the methods. Do not only test behavior that is well defined. e.g., what does happen, if you create a fraction 1/0?

k x Fraction is a class modeling fractions where numerator * and denominator are represented as integral number public class Fraction kx * Constructs a new Fraction object. * Oparam init initial value public Fraction(/* SOMETYPEnum, / SOMETYPE / denom) { /* YOUR CODE ) k* * Computes " this+that" and returns the result in a new object * Oparam that the left-hand side operand * Oreturn a new object representing this+that public /* SOMETYPE */ add(/* SOMETYPE that) { /x YOUR CODE*/ \ k* * Computes " this-that" and returns the result in a new object * Oparam that the left-hand side operand * Oreturn a new object representing this-that public /* SOMETYPE */ sub(/* SOM ETYPE */ that) { /* YOUR CODE */ } k* * Computes "this*that" and returns the result in a new object * Oparam that the left-hand side operand A recent article on issues with floating point arithmetic is available here: https ://cacm.acm.org/magazines/ 2017/8/219594-small-data-computing/fulltext https://en.wikipedia.org/wiki/Greatest_common_divisor

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

SQL Database Programming

Authors: Chris Fehily

1st Edition

1937842312, 978-1937842314

More Books

Students also viewed these Databases questions

Question

=+ Are unions company-wide, regional, or national?

Answered: 1 week ago