*python creating objects with overloaded operators

Creating objects with overloaded operators allows you to use the object like a built in data type. In this lab, you will create a fraction class. By overloading its operators, you can easily use your class to solve mathematical problems related to fractions.

Part 1: Complete Fraction Class

Complete the implementation of the Fraction class provided below.

class Fraction:
#Constructor. Puts fraction in simplest form
def __init__(self,a,b):
self.num = a
self.den = b
self.simplify()
#Print Fraction as a String
def __str__(self):
if self.den==1:
return str(self.num)
else:
return str(self.num)+"https://www.homeworkmarket.com/"+str(self.den)
#Get the Numerator
def getNum(self):
return self.num
#Get the Denominator
def getDen(self):
return self.den
#Give Numerical Approximation of Fraction
def approximate(self):
return self.num/self.den
#Simplify fraction
def simplify(self):
x = self.gcd(self.num,self.den)
self.num = self.num // x
self.den = self.den // x
#Find the GCD of a and b
def gcd(self,a,b):
if b==0:
return a
else:
return self.gcd(b,a % b)
#Complete these methods in lab
def __add__(self,other):
return 0
def __sub__(self,other):
return 0
def __mul__(self,other):
return 0
def __truediv__(self,other):
return 0
def __pow__(self,exp):
return 0

Complete Implementation of the following methods. All of these methods will return an instance of the Fraction class.

Part 2: Fraction Problems

Create a file lab3.py. In this file, use your fraction class to implement functions for each of the following formula. You program should ask the user for the value of n to use in the summations.

Remember that a summation symbol just tells you to add all the values in a range.

sum from k equals 1 to 5 of k equals 1 plus 2 plus 3 plus 4 plus 5 equals 15

Write functions for each of the below expressions.

  1. Harmonic Series:
    H left parenthesis n right parenthesis equals sum from k equals 1 to n of 1 over k
  2. Two:
    T left parenthesis n right parenthesis equals sum from k equals 0 to n of open parentheses 1 half close parentheses to the power of k
  3. Zero:
    Z left parenthesis n right parenthesis equals 2 minus sum from k equals 0 to n of open parentheses 1 half close parentheses to the power of k
  4. Partial Riemann Zeta:
    R left parenthesis n comma b right parenthesis equals sum from k equals 1 to n of open parentheses 1 over k close parentheses to the power of b

Your program will ask for n as input. Compute each of the functions for the given input n. When computing the Riemann Zeta function, print values for b=2,3,4,5,6,7,8.

Verify that the input is a valid number. If it is not, ask repeatedly until a valid number is given.

Once you have been given a valid input, print out the values of each of the functions in the order H, T, Z, R. See below execution trace for exact layout.

Scoring

  • Part 1
    • 6pts – Add
    • 6pts – Subtract
    • 6pts – Multiply
    • 6pts – True Divide
    • 6pts – Power
  • Part 2
    • 10pts – H Function
    • 10pts – T Function
    • 10pts – Z Function
    • 10pts – R Function

Example Execution Trace

Welcome to Fun with Fractions!
Enter Number of iterations (integer>0):
Bad Input
Enter Number of iterations (integer>0):
10
H(10)=7381/2520
H(10)~=2.92896825
T(10)=2047/1024
T(10)~=1.99902344
Z(10)=1/1024
Z(10)~=0.00097656
R(10,2)=1968329/1270080
R(10,2)~=1.54976773
R(10,3)=19164113947/16003008000
R(10,3)~=1.19753199
R(10,4)=43635917056897/40327580160000
R(10,4)~=1.08203658
R(10,5)=105376229094957931/101625502003200000
R(10,5)~=1.03690734
R(10,6)=52107472322919827957/51219253009612800000
R(10,6)~=1.01734151
R(10,7)=650750820166709327386387/645362587921121280000000
R(10,7)~=1.00834915
R(10,8)=1632944765723715465050248417/1626313721561225625600000000
R(10,8)~=1.00407735
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply