0% acharam este documento útil (0 voto)
8 visualizações3 páginas

Python E03

O documento apresenta a implementação de quatro classes em Python: Square para modelar um quadrado, List para criar uma lista sem elementos repetidos, Carro para gerenciar o consumo de combustível de um veículo e Vetor para operações com vetores em 3D. Cada classe inclui métodos para manipulação de atributos e execução de cálculos específicos. Exemplos de uso são fornecidos para cada classe, demonstrando suas funcionalidades.

Enviado por

alipio_resende
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações3 páginas

Python E03

O documento apresenta a implementação de quatro classes em Python: Square para modelar um quadrado, List para criar uma lista sem elementos repetidos, Carro para gerenciar o consumo de combustível de um veículo e Vetor para operações com vetores em 3D. Cada classe inclui métodos para manipulação de atributos e execução de cálculos específicos. Exemplos de uso são fornecidos para cada classe, demonstrando suas funcionalidades.

Enviado por

alipio_resende
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Exercícios III

1. Crie uma classe que modele um quadrado, com um atributo lado e os métodos: mudar valor do
lado, retornar valor do lado e calcular área.

Solução:

class Square(object):

def __init__(self, side=1):


[Link] = side

def get_side(self):
return [Link]

def set_side(self, side):


[Link] = side

def get_area(self):
return [Link] ** 2

square = Square(2)
square.set_side(3)
print square.get_area()

2. Crie uma classe derivada de lista com um método retorne os elementos da lista sem repetição.

Solução:

class List(list):
def unique(self):
"""
Retorna a lista sem repetições.
"""
res = []
for item in self:
if item not in res:
[Link](item)
return res

# Teste
l = List([1, 1, 2, 2, 2, 3, 3])
print [Link]()

3. Implemente uma classe chamada Carro com as seguintes propriedades:


• Um veículo tem um certo consumo de combustível (medidos em km / litro) e uma certa
quantidade de combustível no tanque;
• O consumo é especificado no construtor e o nível de combustível inicial é 0;
• Forneça um método mover(km) que receba a distância em quilômetros e reduza o nível de
combustível no tanque de gasolina;
• Forneça um método gasolina(), que retorna o nível atual de combustível;
• Forneça um método abastecer(litros), para abastecer o tanque.

Solução:

class Carro(object):
tanque = 0

def __init__(self, consumo):


[Link] = consumo

def mover(self, km):


gasto = [Link] * km
if [Link] > gasto:
[Link] = [Link] - gasto
else:
[Link] = 0

def abastecer(self, litros):


[Link] = [Link] + litros

def gasolina(self):
return [Link]

carro = Carro(consumo=5)
[Link](litros=220)
[Link](km=20)
print [Link]()

4. Implementar uma classe Vetor:

• Com coordenadas x, y e z;
• Que suporte soma, subtração, produto escalar, produto vetorial;
• Que calcule o módulo (valor absoluto) do vetor.

Solução:
import math

class Vetor(object):
def __init__(self, x, y, z):
self.x = float(x)
self.y = float(y)
self.z = float(z)

def __repr__(self):
return 'Vetor(x=%.1f, y=%.1f, z=%.1f)' % (self.x, self.y, self.z)

def __add__(self, v):


x = self.x + v.x
y = self.y + v.y
z = self.z + v.z
return Vetor(x, y, z)

def __sub__(self, v):


x = self.x - v.x
y = self.y - v.y
z = self.z - v.z
return Vetor(x, y, z)

def __abs__(self):
tmp = self.x ** 2 + self.y ** 2 + self.z ** 2
return [Link](tmp)

def __mul__(self, v):


if isinstance(v, Vetor):
x = self.y * v.z - v.y * self.z
y = self.z * v.x - v.z * self.x
z = self.x * v.y - v.x * self.y
else:
x = self.x * float(v)
y = self.y * float(v)
z = self.z * float(v)
return Vetor(x, y, z)

vetor = Vetor(1, 2, 3)
print abs(vetor)
print Vetor(4.5, 5, 6) + vetor
print Vetor(4.5, 5, 6) - vetor
print Vetor(4.5, 5, 6) * vetor
print Vetor(4.5, 5, 6) * 5

Você também pode gostar