Buscar

Exerccios_-_POO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Classes e Objetos
1. Crie uma classe Bola cujos atributos são cor e raio. Crie um método que imprime a cor da bola. Crie um método para calcular a área dessa bola. Crie um método para calcular o volume da bola. Crie um objeto dessa classe e calcule a área e o volume, imprimindo ambos em seguida.
Obs.:
Área da esfera = 4*3.14*r*r
Volume da esfera = 4*3.14*r*r*r/3
2. Crie uma classe Retangulo cujos atributos são lado_a e lado_b. Crie um método para calcular a área desse retângulo. Crie um objeto dessa classe e calcule a área e a imprima em seguida.
3. Crie uma classe Funcionario cujos atributos são nome e e-mail. Guarde as horas trabalhadas em um dicionário cujas chaves são o mês em questão e, em outro dicionário, guarde o salário por hora relativo ao mês em questão. Crie um método que retorna o salário mensal do funcionário.
4. Crie uma classe Televisor cujos atributos são:
a. fabricante;
b. modelo;
c. canal atual;
d. lista de canais; e
e. volume.
Faça métodos para aumentar/diminuir volume, trocar o canal e sintonizar um novo canal, que adiciona um novo canal à lista de canais (somente se esse canal não estiver nessa lista). No atributo lista de canais, devem estar armazenados todos os canais já sintonizados dessa TV.
Obs.: O volume não pode ser menor que zero e maior que cem; só se pode trocar para um canal que já esteja na lista de canais.
class Televisor:
 def __init__(self, fabricante, modelo):
 self.fabricante = fabricante
 self.modelo = modelo
 self.canal_atual = None
 self.lista_de_canais = []
 self.volume = 50
 def aumentar_volume(self):
 if self.volume < 100:
 self.volume += 1
 else:
 print("Volume máximo alcançado!")
 def diminuir_volume(self):
 if self.volume > 0:
 self.volume -= 1
 else:
 print("Volume mínimo alcançado!")
 def trocar_canal(self, novo_canal):
 if novo_canal in self.lista_de_canais:
 self.canal_atual = novo_canal
 else:
 print("Canal não disponível na lista de canais!")
 def sintonizar_novo_canal(self, novo_canal):
 if novo_canal not in self.lista_de_canais:
 self.lista_de_canais.append(novo_canal)
 print(f"Novo canal sintonizado: {novo_canal}")
 else:
 print("Este canal já está na lista de canais!")
 
 def mostrar_estado(self):
 print(f"Fabricante: {self.fabricante}")
 print(f"Modelo: {self.modelo}")
 print(f"Canal atual: {self.canal_atual}")
 print(f"Lista de canais sintonizados: {self.lista_de_canais}")
 print(f"Volume: {self.volume}")
tv = Televisor("SAMSUNG", "Modelo X1")
tv.mostrar_estado()
tv.aumentar_volume()
tv.sintonizar_novo_canal(5)
tv.trocar_canal(5)
tv.mostrar_estado()
resposta:
Fabricante: SAMSUNG
Modelo: Modelo X1
Canal atual: None
Lista de canais sintonizados: []
Volume: 50
Novo canal sintonizado: 5
Fabricante: SAMSUNG
Modelo: Modelo X1
Canal atual: 5
Lista de canais sintonizados: [5]
Volume: 51
Confira se está correto
5. Crie uma classe ControleRemoto cujo atributo é televisão (isso é, recebe um objeto da classe do exercício 4). Crie métodos para aumentar/diminuir volume, trocar o canal e sintonizar um novo canal, que adiciona um novo canal à lista de canais (somente se esse canal não estiver nessa lista).
6. O módulo time possui a função time.sleep(x), que faz seu programa “dormir” por x segundos. Utilizando essa função, crie uma classe Cronometro e faça um programa que cronometre o tempo.
7. Crie uma modelagem de classes para uma agenda capaz de armazenar contatos. Através dessa agenda é possível incluir, remover, buscar e listar contatos já cadastrados.
8. Crie uma classe Cliente cujos atributos são nome, idade e e-mail. Construa um método que imprima as informações tal como abaixo:
Nome: Fulano de Tal
	Idade: 40
	E-mail: fulano@mail.com
9. Com base no exercício anterior, crie um sistema de cadastro e a classe Cliente. Seu programa deve perguntar se o usuário quer cadastrar um novo cliente, alterar um cadastro ou sair.
Dica: Você pode fazer esse exercício criando uma classe Sistema, que irá controlar o sistema de cadastros. Essa classe deve ter o atributo cadastro e os métodos para imprimir os cadastrados, cadastrar um novo cliente, alterar um cadastro ou sair.
10. Crie uma classe ContaCorrente com os atributos cliente (que deve ser um objeto da classe Cliente) e saldo. Crie métodos para depósito, saque e transferência. Os métodos de saque e transferência devem verificar se é possível realizar a transação.
11. Crie uma classe Fração cujos atributos são numerador (número de cima) e denominador (número de baixo).
Implemente os métodos de adição, subtração, multiplicação, divisão que retornam objetos do tipo Fração.
Implemente também o método __repr__
Implemente métodos para comparação: igualdade (==) e desigualdades (!=, <=, >=, < e >).
12. Crie uma classe Data cujos atributos são dia, mês e ano. Implemente métodos __repr__ e para comparação: igualdade (==) e desigualdades (!=, <=, >=, < e >).
13. Nos exercícios 1, 2, 3, 4 e 6, implemente o método __repr__ para exibir as informações desejadas de cada uma das classes.
14. Faça uma classe ContaVip que difere da ContaCorrente por ter cheque especial (novo atributo) e é filha da classe ContaCorrente. Você precisa implementar os métodos para saque, transferência ou depósito?
15. Crie uma classe Quadrado, filha da classe Retangulo do exercício 2.
Métodos e atributos estáticos
1. O que faz um método construtor? Crie uma classe Pessoa e defina seu construtor.
2. Escreva um programa que lê nome e idade de 5 pessoas e ao final informa quem é o mais novo, o mais velho e qual a média de idade. Faça o cálculo incluindo um método estático que leva em consideração um atributo estático com a lista de todas as pessoas.
3. Escreva um programa que lê nome, peso e altura de 5 pessoas, calcula o IMC de cada um e ao final informa se alguém está fora do peso ideal (o IMC ideal é entre 18,5 e 25). Novamente implemente um método estático para realizar este cálculo.

Outros materiais