Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Geometry Figures by Oleg_Domokeev
from math import pi, sqrt
class Parameters:
def __init__(self, length):
self.length = length
def choose_figure(self, name):
self.choose_figure = name
def perimeter(self):
return self.choose_figure.perimeter(self.length)
def area(self):
return self.choose_figure.area(self.length)
def volume(self):
return self.choose_figure.volume(self.length)
class Circle:
def perimeter(self, length):
return round(2 * pi * length, 2)
def area(self, length):
return round(pi * length ** 2, 2)
def volume(self, length):
return 0
class Triangle:
def perimeter(self, length):
return round(3 * length, 2)
def area(self, length):
return round(0.25 * sqrt(3) * length ** 2, 2)
def volume(self, length):
return 0
class Square:
def perimeter(self, length):
return round(4 * length, 2)
def area(self, length):
return round(length ** 2, 2)
def volume(self, length):
return 0
class Pentagon:
def perimeter(self, length):
return round(5 * length, 2)
def area(self, length):
return round(0.25 * sqrt(25 + 10 * sqrt(5)) * length ** 2, 2)
def volume(self, length):
return 0
class Hexagon:
def perimeter(self, length):
return round(6 * length, 2)
def area(self, length):
return round(1.5 * sqrt(3) * length ** 2, 2)
def volume(self, length):
return 0
class Cube:
def perimeter(self, length):
return round(12 * length, 2)
def area(self, length):
return round(6 * length ** 2, 2)
def volume(self, length):
return round(length ** 3, 2)
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
figure = Parameters(10)
figure.choose_figure(Circle())
assert figure.area() == 314.16
figure.choose_figure(Triangle())
assert figure.perimeter() == 30
figure.choose_figure(Square())
assert figure.area() == 100
figure.choose_figure(Pentagon())
assert figure.perimeter() == 50
figure.choose_figure(Hexagon())
assert figure.perimeter() == 60
figure.choose_figure(Cube())
assert figure.volume() == 1000
print("Coding complete? Let's try tests!")
Aug. 10, 2018