Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO MARANHÃO – UFMA DEPARTMENTO DE INFORMÁTICA Curso: Licenciatura em Computação - Polo: Dom Pedro/MA Disciplina: Linguagem de Programação II / Professor: Dr. Mário Meireles Aluno: Wilamy Santos da Silva Lista de Exercícios 1 1. Crie uma classe Retângulo, a qual deve ter como atributos base e altura, cada um dos quais configurados por padrão como 2. Forneça métodos que calculem o perímetro e a área do retângulo. Escreva um programa para testar a classe Retângulo. class Retangulo: def __init__(self, ladoA, ladoB): self.ladoA = ladoA self.ladoB = lado def trocaLados(self, ladoA, ladoB): self.ladoA = ladoA self.ladoB = lado def retornaLados(self): return (self.ladoA, self.ladoB) def perimetro(self): return 2 * self.ladoA + 2 * self.ladoB def area(self): return self.ladoA * self.ladoB ret = Retangulo(4,7) print("Lados: %i, %i" % ret.retornaLados()) print ("Perimetro: %i Area: %i" % (ret.perimetro(), ret.area())) 2. Faça uma classe que simule um televisor criando-o como um objeto. O usuário deve ser capaz de mudar de canal e aumentar ou diminuir o volume. Sua classe deve imprimir mensagens informativas do que acabou de ser feito, por exemplo: “Nível de volume 25”, “Canal 10” e assim por diante. Certifique-se de que o número do canal e o nível do volume permaneçam dentro de faixas válidas. Escreva um programa para testar sua classe. import time class Televisor: def __init__(self, canal="1", volume="80"): self.canal = canal self.volume = volume @property def canal(self): return self.__canal @canal.setter def canal(self, numero): if numero.isdigit(): num = int(numero) if num > 0 and num <= 180: self.__canal = num else: print("Canal Inválido") else: print("O canal deve ser apenas números!") @property def volume(self): return self.__volume @volume.setter def volume(self, numero): if numero.isdigit(): num = int(numero) if num >= 0 and num <= 150: self.__volume = num else: print("O volume deve ser entre 0 e 80") else: print("O volume deve ser apenas números!") def mudaCanal(self): num = input("Mudar para CANAL: ") self.canal = num def mudaVolume(self): num = input("Mudar para VOLUME: ") self.volume = num def __str__(self): return "CANAL: {} \nvolume: {}\n ".format(self.canal, self.volume) def main(): tv01 = televisor() while True: print("\n"*40) print(tv01) print("opções ---------") print("1 - mudar canal") print("2 - mudar volume") print("3 - desligar\n ---------------") selec = input("Selecionar:") if selec == "1": tv01.mudaCanal() elif selec == "2": tv01.mudaVolume() elif selec == "3": print("Desligando ...") break else: print("Selecione uma opção válida!") time.sleep(2) main() 3. Faça um programa orientado a objetos que: a) Possua uma classe chamada BombaCombustível, com no mínimo esses atributos: I. valor_litro II. quantidade_combustivel b) Possua no mínimo esses métodos: I. abastecer_por_valor( ) – método que recebe o valor a ser abastecido e retorna a quantidade de litros que foi colocada no veículo. II. abastecer_por_litro( ) – método que recebe a quantidade em litros de combustível e retorna o valor a ser pago pelo cliente. Escreva um programa para testar sua classe. class Bomba: def __init__(self, capacidade, preco): self.capacidade = capacidade self.preco = preco def abastecerPorValor(self, valor): litros = valor / self.preco self.capacidade = self.capacidade - litros return litros def abastecerPorLitro(self, litros): valor = litros * self.preco self.capacidade = self.capacidade - litros return valor def alterarPreco(self, preco): self.preco = preco def encherBomba(self, litros): self.capacidade = self.capacidade + litros bomba = Bomba(2020, 3.8) print ("Abasteceu %f litros" % bomba.abastecerPorValor(5)) print ("Abasteceu %f reais" % bomba.abastecerPorLitro(10))
Compartilhar