LABORATORIO: Triángulo

Tiempo Estimado

30 - 60 minutos

Nivel de Dificultad

Fácil/Medio

Objetivos

  • Mejorar las habilidades del estudiante para definir clases desde cero.
  • Emplear composición.

Escenario

Llamamos composición a la situación en la que una clase contiene (como atributos) una o más instancias de otra clase, a las que delegará parte de sus funcionalidades.

Vamos a definir una clase para representar un triángulo. Nuestro triángulo estará formado por tres puntos, estos puntos se guardarán en un objeto de clase Point que desarrollamos en el taller anterior.

La nueva clase se llamará Triangle y esto es lo que queremos:

  • El constructor acepta tres argumentos, todos ellos son objetos de la clase Point.
  • Los puntos se almacenan dentro del objeto como una lista privada
  • La clase proporciona un método sin parámetros llamado perimeter(), que calcula el perímetro del triángulo descrito por los tres puntos; el perímetro es la suma de todas las longitudes de los lados.

Puedes usar la siguiente plantilla:

import math


class Point:
    #
    # El código copiado del laboratorio anterior.
    #


class Triangle:
    def __init__(self, vertice1, vertice2, vertice3):
        #
        # Escribir el código aquí.
        #

    def perimeter(self):
        #
        # Escribir el código aquí.
        #


triangle = Triangle(Point(0, 0), Point(1, 0), Point(0, 1))
print(triangle.perimeter())

Salida esperada

3.414213562373095