From d667c9362d9abd705dfdfe2dbd11a9190395e122 Mon Sep 17 00:00:00 2001 From: larissalemos Date: Tue, 12 Sep 2023 20:16:48 -0300 Subject: [PATCH 1/2] =?UTF-8?q?S06=20-=20Exerc=C3=ADcio=20Heran=C3=A7a=20-?= =?UTF-8?q?=20Larissa=20Lemos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercicios/para-sala/S06-Exercicio_Heranca.py | 73 ++++++++++++++++ exercicios/para-sala/exemplo_heranca.py | 83 +++++++++++++++++++ .../para-sala/exercicio_conta_bancaria.py | 48 +++++++++++ exercicios/para-sala/exercicio_produto.py | 46 ++++++++++ exercicios/para-sala/exercicio_retangulo.py | 32 +++++++ 5 files changed, 282 insertions(+) create mode 100644 exercicios/para-sala/S06-Exercicio_Heranca.py create mode 100644 exercicios/para-sala/exemplo_heranca.py create mode 100644 exercicios/para-sala/exercicio_conta_bancaria.py create mode 100644 exercicios/para-sala/exercicio_produto.py create mode 100644 exercicios/para-sala/exercicio_retangulo.py diff --git a/exercicios/para-sala/S06-Exercicio_Heranca.py b/exercicios/para-sala/S06-Exercicio_Heranca.py new file mode 100644 index 0000000..6696f40 --- /dev/null +++ b/exercicios/para-sala/S06-Exercicio_Heranca.py @@ -0,0 +1,73 @@ +''' +Crie uma classe base chamada Veiculo com os seguintes atributos: + +- modelo: o modelo do veículo (uma string). +- ano: o ano de fabricação do veículo (um número inteiro). +- preco: o preço do veículo (um número decimal). +Na classe Veiculo, implemente um método chamado `calcular_imposto()` que retorna o imposto a ser pago pelo veículo. +O imposto é calculado como 10% do preço do veículo. + +Crie uma classe chamada Carro que herda da classe Veiculo. Adicione um atributo adicional: + +- marca: a marca do carro (uma string). +Na classe Carro, implemente um método chamado desconto() que retorna um desconto de 5% no preço do carro. + +Crie uma classe chamada Moto que também herda da classe Veiculo. Adicione um atributo adicional: + +- cilindrada: a cilindrada da moto (um número inteiro). +Na classe Moto, implemente um método chamado `calcular_imposto()` que calcula o imposto a ser pago pela moto. +O imposto para motos é de 5% do preço do veículo. + +Crie instâncias de Carro e Moto, atribuindo valores adequados aos atributos de cada veículo. + +Calcule e imprima o imposto a ser pago por cada veículo usando o método `calcular_imposto()`. +''' + +class Veiculo: + def __init__(self, modelo, ano, preco): + self.modelo = modelo + self.ano = ano + self.preco = preco + + def calcular_imposto(self): + imposto = self.preco * 0.1 + return f"\nO valor do imposto do veículo é R${imposto:.2f}\n" + +class Carro(Veiculo): + def __init__(self, modelo, ano, preco, marca): + super().__init__(modelo, ano, preco) + self.marca = marca + + def calcular_desconto(self): + desconto = self.preco * 0.05 + return f"\nO preço do carro {self.modelo} do ano {self.ano} com desconto de 5% é R${(self.preco - desconto):.2f}" + +class Moto(Veiculo): + def __init__(self, modelo, ano, preco, cilindradas): + super().__init__(modelo, ano, preco) + self.cilindradas = cilindradas + + def calcular_imposto(self): + imposto = self.preco * 0.05 + return f"\nO valor do imposto da moto {self.modelo} do ano {self.ano} é R${imposto:.2f}\n" + +while True: + + veiculo = input("Qual o seu veículo, moto ou carro?\n").lower() + + if veiculo == "moto": + modelo_moto = input("Qual o modelo da moto?\n") + preco_moto = float(input("Qual o preço da moto?\n")) + imposto_moto = Moto("Bis", 2012, 7000, 100) + print(imposto_moto.calcular_imposto()) + break + elif veiculo == "carro": + modelo_carro = input("Qual o modelo do carro?\n") + preco_carro = float(input("Qual o preço do carro?\n")) + desconto_celta = Carro("Celta", 2014, preco_carro, "Chevrolet") + print(desconto_celta.calcular_desconto()) + imposto_veiculo = Veiculo("Celta", 2014, 30000) + print(imposto_veiculo.calcular_imposto()) + break + else: + print("Veículo deve ser Moto ou Carro. ") \ No newline at end of file diff --git a/exercicios/para-sala/exemplo_heranca.py b/exercicios/para-sala/exemplo_heranca.py new file mode 100644 index 0000000..e50dec2 --- /dev/null +++ b/exercicios/para-sala/exemplo_heranca.py @@ -0,0 +1,83 @@ +class Animal: + def __init__(self, nome): + self.nome = nome + + def fazer_som(self): + pass + +class Cachorro(Animal): + def fazer_som(self): + return f"{self.nome} faz um latido." + +class Gato(Animal): + def fazer_som(self): + return f"{self.nome} faz um miado." + +#animal_1 = Animal("Kaki") +#cachorro_da_gabi = Cachorro() +#cachorro_da_gabi.fazer_som() + +#---- + +class Person: + def __init__(self, nacionalidade, genero, nome, idade): + self.nacionalidade = nacionalidade + self.genero = genero + self.nome = nome + self.idade = idade + + def info(self): + print(self.nacionalidade, self.genero,self.nome, self.idade) + +class PersonProfessional(Person): + def __init__ (self, nacionalidade, genero, nome, idade, setor, nivel): + super().__init__(nacionalidade, genero, nome, idade) + self.setor = setor + self.nivel = nivel + + def info(self): + super().info() + print("Setor: ", self.setor) + print("Nível: ", self.nivel) + +maria_dba = PersonProfessional("brasileira", "mulher cis", "Maria", "19", "data","junior") +maria_dba.info() + +# ---- + +class Veiculo: + def __init__(self, marca, modelo, ano): + self.marca = marca + self.modelo = modelo + self.ano = ano + + def descricao(self): + return f"Marca: {self.marca}, Modelo: {self.modelo}, Ano: {self.ano}" + +class Carro(Veiculo): + def __init__(self, marca, modelo, ano, num_portas): + super().__init__(marca, modelo, ano) + self.num_portas = num_portas + + def descricao(self): + return super().descricao() + f", Número de portas: {self.num_portas}" + +class Moto(Veiculo): + def __init__(self, marca, modelo, ano, tipo_motor): + super().__init__(marca, modelo, ano) + self.tipo_motor = tipo_motor + + def descricao(self): + return super().descricao() + f"tipo de motor: {self.tipo_motor}" + +carro = Carro("Toyota", "Corolla", 2023, 4) + +moto = Moto("Honda", "CBR500R", 2022, "4 tempos") + +print(carro.descricao()) + +print(moto.descricao()) + +carro_joao = Carro("Fiat", "Siena", 2018, 4) + +print(carro_joao.descricao()) \ No newline at end of file diff --git a/exercicios/para-sala/exercicio_conta_bancaria.py b/exercicios/para-sala/exercicio_conta_bancaria.py new file mode 100644 index 0000000..8f13e94 --- /dev/null +++ b/exercicios/para-sala/exercicio_conta_bancaria.py @@ -0,0 +1,48 @@ +''' +Você está criando um programa para representar contas bancárias. Cada conta bancária tem um número de conta, um titular da conta e um saldo. +Você precisa criar uma classe ContaBancaria para representar essas contas e fornecer métodos para realizar operações básicas, +como depósito e saque. + +`Instruções:` + +Crie uma classe chamada ContaBancaria com os seguintes atributos: + +numero_conta: o número da conta (um número inteiro). +titular_conta: o nome do titular da conta (uma string). +saldo: o saldo da conta (um número decimal, inicialmente definido como 0). +Implemente os seguintes métodos na classe ContaBancaria: + +`__init__(self, numero_conta, titular_conta)`: O construtor que inicializa os atributos da conta. +depositar(self, valor): Um método que permite ao titular da conta depositar dinheiro na conta. +sacar(self, valor): Um método que permite ao titular da conta sacar dinheiro da conta, desde que haja saldo suficiente. +''' + +class ContaBancaria: + def __init__(self, numero_conta, titular_conta): + self.numero_conta = numero_conta + self.titular_conta = titular_conta + self.saldo = 0.0 + + def depositar(self, valor): + if valor > 0: + self.saldo =+ valor #self.saldo = self.saldo + valor + print(f"Valor depositado de R${valor}, realizado com sucesso.") + + def sacar(self, valor): + if valor > 0: + if self.saldo >= valor: + self.saldo -= valor + print(f"Saque de R${valor} realizado com sucesso") + else: + print("Saldo insuficiente para realizar o saque") + else: + print("O valor do saque deve ser maior que zero.") + +conta = ContaBancaria(202301, "Larissa Lemos") + +conta.depositar(100) + +conta.depositar(50) +print(conta.saldo) + +conta.sacar(20) \ No newline at end of file diff --git a/exercicios/para-sala/exercicio_produto.py b/exercicios/para-sala/exercicio_produto.py new file mode 100644 index 0000000..6cd5748 --- /dev/null +++ b/exercicios/para-sala/exercicio_produto.py @@ -0,0 +1,46 @@ +''' +Crie um sistema de gerenciamento de produtos em uma loja. Crie uma classe base chamada Produto com os seguintes atributos: + +nome: o nome do produto. +preco: o preço do produto. + +A classe Produto deve ter um método chamado `descricao()` que retorna uma descrição completa do produto. +Crie duas subclasses concretas, ProdutoFisico e ProdutoDigital, que herdam da classe Produto. +Adicione atributos específicos para cada tipo de produto, como peso e dimensões para produtos físicos e tamanho de arquivo para produtos digitais. + +Implemente o método `descricao()` em cada uma das subclasses para incluir informações específicas do tipo de produto. +Crie instâncias de ProdutoFisico e ProdutoDigital, atribuindo valores adequados aos atributos de cada produto. +Use o método `descricao()` para exibir informações detalhadas sobre cada produto. +''' +class Produto: + def __init__(self, nome, preco): + self.nome = nome + self.preco = preco + + def descricao(self): + return f"Nome do produto: {self.nome}.\nPreço do produto: R${self.preco}" + +class ProdutoFisico(Produto): + def __init__(self, nome, preco, peso, dimensoes): + super().__init__(nome, preco) + self.peso = peso + self.dimensoes = dimensoes + + def descricao(self): + return super().descricao() + +class ProdutoDigital(Produto): + def __init__(self, nome, preco, tamanho_arquivo): + super().__init__(nome, preco) + self.tamanho_arquivo = tamanho_arquivo + + def descricao(self): + return super().descricao() + f", Tamanho do Arquivo: {self.tamanho_arquivo} MB" + +produto_fisico_darla = ProdutoFisico("livro", 50, 0.5, "10x15x3") + +print(produto_fisico_darla.descricao()) + +produto_digital_darla = ProdutoDigital("E-book", 50, 10) + +print(produto_digital_darla.descricao()) diff --git a/exercicios/para-sala/exercicio_retangulo.py b/exercicios/para-sala/exercicio_retangulo.py new file mode 100644 index 0000000..9993329 --- /dev/null +++ b/exercicios/para-sala/exercicio_retangulo.py @@ -0,0 +1,32 @@ +''' +Crie uma classe chamada Retangulo para representar retângulos. +Cada retângulo tem largura e altura. +A classe deve incluir métodos para calcular a área e o perímetro. + +Instruções: + +Crie uma classe chamada Retangulo com os seguintes atributos: + +largura: a largura do retângulo (um número decimal). +altura: a altura do retângulo (um número decimal). +Implemente os seguintes métodos na classe Retangulo: +''' + +class Retangulo: + def __init__(self, largura, altura): + self.largura = largura + self.altura = altura + + def calcular_area(self): + return self.largura * self.altura +# print(f"O valor da área do retângulo é: {area}") + + def calcular_perimetro(self): + return (2 * self.largura) + (2 * self.altura) +# print(f"O valor da perímetro do retângulo é: {perimetro}") + + +dimensoes = Retangulo(10, 10) +print(f"\nA área do retângulo é: {dimensoes.calcular_area()}") +print(f"\nO perímetro do retângulo é: {dimensoes.calcular_perimetro()}") +print(f"\nA largura do retângulo é: {dimensoes.largura}\n") \ No newline at end of file From 66f9bc6095951d82c46eb7a02ee05bff16573939 Mon Sep 17 00:00:00 2001 From: larissalemos Date: Tue, 12 Sep 2023 20:17:28 -0300 Subject: [PATCH 2/2] =?UTF-8?q?S06=20-=20Exerc=C3=ADcio=20Heran=C3=A7a=20-?= =?UTF-8?q?=20Larissa=20Lemos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercicios/{para-sala => para-casa}/S06-Exercicio_Heranca.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename exercicios/{para-sala => para-casa}/S06-Exercicio_Heranca.py (100%) diff --git a/exercicios/para-sala/S06-Exercicio_Heranca.py b/exercicios/para-casa/S06-Exercicio_Heranca.py similarity index 100% rename from exercicios/para-sala/S06-Exercicio_Heranca.py rename to exercicios/para-casa/S06-Exercicio_Heranca.py