Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import pi as PI
- class Point:
- """Klasa opisująca punkt na płaszczyźnie"""
- def __init__ (self,x1,y1):
- self.__x = x1
- self.__y = y1
- def __str__(self):
- return "Lokalizacja punktu: x={}, y={}".format(self.__x,self.__y)
- class Figure(Point):
- """Klasa opisująca figurę na płaszczyźnie o środku w punkcie Point"""
- __listOfFigures = []
- def __init__ (self,x,y,
- colour = "czerwony",
- name="figura",
- lineWidth=2,
- lineStyle='-'):
- super().__init__(x,y)
- self.__colour = colour
- self.__name = name
- self.__lineWidth = lineWidth
- self.__lineStyle = lineStyle
- def __str__(self):
- return '{}\nKolor figury = "{}"\nTyp figury = {}\nGrubość linii = {} \nStyl linii = "{}"'.format(
- super().__str__(), self.__colour,
- self.__name,self.__lineWidth,
- self.__lineStyle)
- def addFigure(self,newFigure):
- self.__listOfFigures.append(newFigure)
- def printFigureList(self):
- for figure in self.__listOfFigures:
- print(figure)
- print(30*'-')
- def numberOfElements(self):
- return len(self.__listOfFigures)
- def area(self):
- """Metoda licząca pole figury"""
- pass
- def perimeter(self):
- """Metoda licząca obwód figury"""
- pass
- class Triangle(Figure):
- def __init__ (self,x,y,
- base,
- sideA,
- sideB,
- height,
- colour = "czerwony",
- name = "trójkąt",
- lineWidth=2,
- lineStyle='-'):
- super().__init__(x,y,colour,name,lineWidth,lineStyle)
- self.__base = base
- self.__sideA = sideA
- self.__sideB = sideB
- self.__height = height
- def __str__(self):
- return "{} \nPole = {}, obwód = {}".format(super().__str__(),self.area(),self.perimeter())
- def perimeter(self):
- return self.__base + self.__sideA + self.__sideB
- def area(self):
- return 0.5*self.__base*self.__height
- class Rectangle(Figure):
- def __init__ (self,x,y,
- sideA,
- sideB,
- colour = "czerwony",
- name = "prostokąt",
- lineWidth=2,
- lineStyle='-'):
- super().__init__(x,y,colour,name,lineWidth,lineStyle)
- self.__sideA = sideA
- self.__sideB = sideB
- def __str__(self):
- return "{} \nPole = {}, obwód = {}".format(super().__str__(),self.area(),self.perimeter())
- def perimeter(self):
- return 2*self.__sideA + 2*self.__sideB
- def area(self):
- return self.__sideA*self.__sideB
- class Circle(Figure):
- def __init__ (self,x,y,
- radius,
- colour = "czerwony",
- name = "koło",
- lineWidth=2,
- lineStyle='-'):
- super().__init__(x,y,colour,name,lineWidth,lineStyle)
- self.__radius = radius
- def __str__(self):
- return "{} \nPole = {}, obwód = {}".format(super().__str__(),self.area(),self.perimeter())
- def perimeter(self):
- return 2*PI*self.__radius
- def area(self):
- return self.__radius**2*PI
- def main():
- figure = Figure(3,4)
- figure.addFigure(Triangle(2,2,4,5,6,7))
- figure.addFigure(Rectangle(3,3,2,2))
- figure.addFigure(Circle(4,4,12))
- figure.printFigureList()
- print("Liczba figur w licie: {}".format(figure.numberOfElements()))
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement