# oryginal: # https://pastebin.com/bFMBQ81H # https://pastebin.com/Wv7gc6bp import math class GeometricObject: def __init__(self): self.color= 'black' self.filled = False 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): if self.filled: fill = "yes" else: fill = "no" return "Triangle:\n side1 = {}\n side2 = {}\n side3 = {}\n color = {}\n filled: {}".format(self.side1, self.side2, self.side3, self.color, fill) tria = Triangle() tria.setFilled(True) print(tria) print(" Area:", tria.getArea()) print(" Perimeter:", tria.getPerimeter()) tria = Triangle() tria.setSides(1,4,5) print(tria) print("Area:", tria.getArea()) print("Perimeter:", tria.getPerimeter())