Please place your programs in seperate files named as described in the problem. Improperly named programs will not count. Turn in your files by placing them in the dropbox. Please be mindful of the late policy.
Correct | 80% |
Commented | 10% |
Attempted | 10% |
Modify your program from 5.0:
treeNode.py
makeTree
function, that code
should go into TreeNode.__init__
instead.printTree
function, that code
should go into TreeNode.print
instead.dumpToList
function, that code should
go into TreeNode.dumpToList
instead.Create a class for managing complex numbers. If you do not remember
the mechanics of complex arithmatic, you can remind yourself by
searching for complex on mathworld.wolfram.com. Your file should be called
complex.py
and your class should be called
Complex
. (There is already a python type called
complex
, but please do not make use of it. Imagine that
you are programming the offical python complex
class.)
Include the following methods:
__init__(self, real, imag)
. Give real
and imag
default values of 0.0
. This method
should set the class attributes real
and imag
.
__add__(self, rhs)
__sub__(self, rhs)
__mul__(self, rhs)
__div__(self, rhs)
__neg__(self)
__abs__(self)
__str__(self)
__repr__(self)
conjugate(self)
Include the following test code:
print Complex(5.0,0)+Complex(7.0,0)
print Complex(0,5.0)+Complex(0,7.0)
print Complex(5.0,0)+Complex(0,7.0)
print Complex(5.0,0)-Complex(7.0,0)
print Complex(0,5.0)-Complex(0,7.0)
print Complex(5.0,0)-Complex(0,7.0)
print Complex(5.0,0)*Complex(7.0,0)
print Complex(0,5.0)*Complex(0,7.0)
print Complex(5.0,0)*Complex(0,7.0)
print Complex(5.0,0)/Complex(7.0,0)
print Complex(0,5.0)/Complex(0,7.0)
print Complex(5.0,0)/Complex(0,7.0)
print abs(Complex(5.0,0))
print abs(Complex(0,7.0))
print abs(Complex(5.0,7.0))
print -(Complex(5.0,0))
print -(Complex(0,7.0))
print -(Complex(5.0,7.0))
print Complex(5.0,0).conjugate()
print Complex(0,7.0).conjugate()
print Complex(5.0,7.0).conjugate()
print repr(Complex(5.0, 7.0))
print Complex(1.0)
print Complex(imag=1.0)
It should print out the following:
(12.0+0j)
(0+12.0j)
(5.0+7.0j)
(-2.0+0j)
(0-2.0j)
(5.0-7.0j)
(35.0+0.0j)
(-35.0+0.0j)
(0.0+35.0j)
(0.714285714286+0.0j)
(0.714285714286+0.0j)
(0.0-0.714285714286j)
5.0
7.0
8.60232526704
(-5.0+0j)
(0-7.0j)
(-5.0-7.0j)
(5.0+0j)
(0-7.0j)
(5.0-7.0j)
(5.0+7.0j)
(1.0+0.0j)
(0.0+1.0j)