21.12.2022 Views

python_para_desenvolvedores_2ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Respostas dos exercícios IV 347

print Vetor(4.5, 5, 6) * 5

5. Implemente um módulo com:

▪ Uma classe Ponto, com coordenadas x, y e z.

▪ Uma classe Linha, com dois pontos A e B, e que calcule o comprimento

da linha.

▪ Uma classe Triangulo, com dois pontos A, B e C, que calcule o

comprimento dos lados e a área.

Solução:

class Ponto(object):

def __init__(self, x, y, z):

# Coordenadas

self.x = float(x)

self.y = float(y)

self.z = float(z)

def __repr__(self):

return '(%2.1f, %2.1f, %2.1f)' % \

(self.x, self.y, self.z)

class Linha(object):

def __init__(self, a, b):

# Pontos

self.a = a

self.b = b

def comp(self):

x = self.b.x - self.a.x

y = self.b.y - self.a.y

z = self.b.z - self.a.z

return round((x ** 2 + y ** 2 + z ** 2)\

** .5, 1)

def __repr__(self):

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!