PYTHON program Please help with the following exercise The T
PYTHON program, Please help with the following exercise:
(The Triangle class) Modify the Triangle class in the Programming file below to throw a RuntimeError exception if the three given sides cannot form a triangle.
import math
class GeometricObject :
def __init__(self):
self.color= \'black\'
self.filled = 0
def getColor(self):
return self.color
def getFilled(self):
return self.filled
def setColor(self,color):
self.color = color
def setFilled(self, filled):
self.filled = filled
class Triangle(GeometricObject):
def __init__(self):
super().__init__()
self.side1 = 1.0
self.side2 = 1.0
self.side3 = 1.0
def setSides(self,side1,side2,side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
def getArea(self):
s = (self.side1+self.side2+self.side3)/2
area = math.sqrt( s* (s-self.side1) * (s-self.side2) * (s-self.side3))
return area
def getPerimeter(self):
return (self.side1+self.side2+self.side3)
def __str__(self):
output = (\"Triangle: side1 = \" + str(self.side1) + \" side2 = \" + str(self.side2)
+ \" side3 = \" + str(self.side3)+\" color = \"+self.color)
output = output+\" Filled: \"
if(self.filled == 0):
output = output+ \"No\"
else:
output = output+\"Yes\"
return output
tria1 = Triangle()
print(tria1, \" Area: \",tria1.getArea(), \" Perimeter: \",tria1.getPerimeter())
tria2 = Triangle()
tria2.setSides(3,4,5)
print(tria2, \" Area: \",tria2.getArea(), \" Perimeter: \",tria2.getPerimeter())
Solution
import math
class GeometricObject :
def __init__(self):
self.color= \'black\'
self.filled = 0
def getColor(self):
return self.color
def getFilled(self):
return self.filled
def setColor(self,color):
self.color = color
def setFilled(self, filled):
self.filled = filled
class Triangle(GeometricObject):
def __init__(self):
super().__init__()
self.side1 = 1.0
self.side2 = 1.0
self.side3 = 1.0
def setSides(self,side1,side2,side3):
if(side1+side2<=side3):
raise RuntimeError(\'The given three sides cannot from a triangle\')
elif(side1+side3<=side2):
raise RuntimeError(\'The given three sides cannot from a triangle\')
elif(side3+side2<=side1):
raise RuntimeError(\'The given three sides cannot from a triangle\')
self.side1 = side1
self.side2 = side2
self.side3 = side3
def getArea(self):
s = (self.side1+self.side2+self.side3)/2
area = math.sqrt( s* (s-self.side1) * (s-self.side2) * (s-self.side3))
return area
def getPerimeter(self):
return (self.side1+self.side2+self.side3)
def __str__(self):
output = (\"Triangle: side1 = \" + str(self.side1) + \" side2 = \" + str(self.side2)
+ \" side3 = \" + str(self.side3)+\" color = \"+self.color)
output = output+\" Filled: \"
if(self.filled == 0):
output = output+ \"No\"
else:
output = output+\"Yes\"
return output
tria1 = Triangle()
print(tria1, \" Area: \",tria1.getArea(), \" Perimeter: \",tria1.getPerimeter())
tria2 = Triangle()
tria2.setSides(1,4,5)
print(tria2, \" Area: \",tria2.getArea(), \" Perimeter: \",tria2.getPerimeter())


