From eeca34da5b89e754e2f9d717a38facd33a3301bc Mon Sep 17 00:00:00 2001 From: Maria de Fatima Rodrigues Date: Wed, 13 Sep 2023 20:05:41 -0300 Subject: [PATCH] Feito em grupo --- .../para-casa/Exerc\303\255cio_de_casa.py" | 52 ++++++++++++++++ exercicios/para-casa/exercio_extra.py | 32 ++++++++++ .../para-sala/exemplo_heran\303\247a.py" | 27 +++++++++ exercicios/para-sala/exercicio1.py | 46 +++++++++++++++ exercicios/para-sala/exercicio3.py | 59 +++++++++++++++++++ exercicios/para-sala/exercicio_produto.py | 52 ++++++++++++++++ exercicios/para-sala/exercico2.py | 38 ++++++++++++ exercicios/para-sala/exercico_classes.py | 46 +++++++++++++++ "material/anota\303\247\303\265es" | 58 ++++++++++++++++++ 9 files changed, 410 insertions(+) create mode 100644 "exercicios/para-casa/Exerc\303\255cio_de_casa.py" create mode 100644 exercicios/para-casa/exercio_extra.py create mode 100644 "exercicios/para-sala/exemplo_heran\303\247a.py" create mode 100644 exercicios/para-sala/exercicio1.py create mode 100644 exercicios/para-sala/exercicio3.py create mode 100644 exercicios/para-sala/exercicio_produto.py create mode 100644 exercicios/para-sala/exercico2.py create mode 100644 exercicios/para-sala/exercico_classes.py create mode 100644 "material/anota\303\247\303\265es" diff --git "a/exercicios/para-casa/Exerc\303\255cio_de_casa.py" "b/exercicios/para-casa/Exerc\303\255cio_de_casa.py" new file mode 100644 index 0000000..855b6e1 --- /dev/null +++ "b/exercicios/para-casa/Exerc\303\255cio_de_casa.py" @@ -0,0 +1,52 @@ +# 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_carro(self): + imposto = self.preco * 0.1 + return imposto + +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 desconto + +class Moto(Veiculo): + def _init_(self, modelo, ano, preco, cilindrada): + super().__init__(modelo, ano, preco) + self.cilindrada = cilindrada + + def calcular_imposto_moto(self): + imposto = self.preco * 0.05 + return imposto + +carro_maria = Carro('esportivo', 2023, 25, 'porsche caycan') +moto_joana = Moto('custom-harley davidson', 2023, 50, 1000) + +print(carro_maria.calcular_imposto_carro()) +print(moto_joana.calcular_imposto_moto()) + diff --git a/exercicios/para-casa/exercio_extra.py b/exercicios/para-casa/exercio_extra.py new file mode 100644 index 0000000..7eedd3e --- /dev/null +++ b/exercicios/para-casa/exercio_extra.py @@ -0,0 +1,32 @@ +class Funcionario: + def __init__(self, nome, salario): + self.nome = str(nome) + self.salario - 0 + + def calcularPagamento(self): + pass + +class Temporario(Funcionario): + def __init__(self, nome, salarioporhora, hora): + self.nome = str(nome) + self.salarioporhora = salarioporhora + self.hora = hora + + def calcularPagamento(self): + salario = self.salarioporhora * self.hora + return salario + +class FuncionarioIntegral(Funcionario): #funcionario dentro do () para poder chamar a classe lá de cima + def __init__(self, nome, salariomensal): + super().__init__(nome) + self.salariomensal = salariomensal + + def calcularPagamento(self): + return self.salariomensal + +maria_funcionario = FuncionarioIntegral("Maria", 20.000) +andreza_funcionario = Temporario ("Andreza", 1500, 10) + +print(maria_funcionario.calcularPagamento()) +print(andreza_funcionario.calcularPagamento()) + \ No newline at end of file diff --git "a/exercicios/para-sala/exemplo_heran\303\247a.py" "b/exercicios/para-sala/exemplo_heran\303\247a.py" new file mode 100644 index 0000000..053d0e3 --- /dev/null +++ "b/exercicios/para-sala/exemplo_heran\303\247a.py" @@ -0,0 +1,27 @@ + +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', 'feminina', 'Maria', '19', 'data', 'junior') + +maria_dba.info() \ No newline at end of file diff --git a/exercicios/para-sala/exercicio1.py b/exercicios/para-sala/exercicio1.py new file mode 100644 index 0000000..0e2cc88 --- /dev/null +++ b/exercicios/para-sala/exercicio1.py @@ -0,0 +1,46 @@ + +#### exemplo rxtra - com desconto ### + + +# Implemente o método calcular_aluguel() em cada uma das subclasses para calcular o valor do aluguel com base em regras específicas: +# Para Casa, o aluguel deve ser calculado como preco_base + (area_terreno * 5). +# Para Apartamento, o aluguel deve ser calculado como preco_base + (numero_quartos * 300). +# e superclass tem o atributo endereco e nome_do_proprietario + + +class Imovel: + def __init__(self, endereco, nome_do_proprietario, preco_base): + self.endereco = endereco + self.nome_do_proprietario = nome_do_proprietario + self.preco_base = preco_base + + def calcular_aluguel(self): + return self.preco_base + +class Casa(Imovel): + def __init__(self, endereco, nome_do_proprietario, preco_base, area_terreno): + super().__init__(endereco, nome_do_proprietario, preco_base) + self.area_terreno = area_terreno + + def calcular_aluguel(self): + resp = self.preco_base + (self.area_terreno * 5) + return resp + +class Apartamento(Imovel): + def __init__(self, endereco, nome_do_proprietario, preco_base, numero_quartos): + super().__init__(endereco,nome_do_proprietario, preco_base) + self.numero_quartos = numero_quartos + + def calcular_aluguel(self): + resp = self.preco_base + (self.numero_quartos * 300) + return resp + + +casa_maria = Casa("122 Rua das Flores", "Maria", 1500, 300) +apartamento_carlos = Apartamento("333, Av. João Mendes", 'Carlos Jose', 1200, 2) + + +print(casa_maria.calcular_aluguel()) + + + diff --git a/exercicios/para-sala/exercicio3.py b/exercicios/para-sala/exercicio3.py new file mode 100644 index 0000000..f072caa --- /dev/null +++ b/exercicios/para-sala/exercicio3.py @@ -0,0 +1,59 @@ +#- Exercício 3: Veículos + +#Crie um sistema de gerenciamento de veículos. Crie uma classe base chamada Veiculo com os seguintes atributos: + + # - marca: a marca do veículo. + # - modelo: o modelo do veículo. + # - ano: o ano de fabricação do veículo. + + +# A classe Veiculo deve ter um método chamado `descricao()` que retorna uma descrição completa do veículo. + +# Crie duas subclasses concretas, Carro e Moto, que herdam da classe Veiculo. Adicione atributos específicos para cada tipo de veículo, como número de portas para carros e tipo de motor para motos. + +# Implemente o método `descricao()` em cada uma das subclasses para incluir informações específicas do tipo de veículo. + +# Crie instâncias de Carro e Moto, atribuindo valores adequados aos atributos de cada veículo. Use o método `descricao()` para exibir informações detalhadas sobre cada veículo. + + +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úmeros 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_produto.py b/exercicios/para-sala/exercicio_produto.py new file mode 100644 index 0000000..8e5f24b --- /dev/null +++ b/exercicios/para-sala/exercicio_produto.py @@ -0,0 +1,52 @@ +#Exercício 2: Produtos + +#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. + +#Esses exercícios ajudarão você a praticar a criação de hierarquias de classes com herança em Python e a entender como compartilhar funcionalidades comuns e adicionar comportamentos específicos em subclasses. + + # exerecicio 2 + +class Produto: + def __init__(self, nome, preco): + self.nome = nome + self.preco = preco + + def descricao(self): + return f'nome: {self.nome}, Preço 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() + f", Peso: {self.peso} kg, Dimensões: {self.dimensoes} cm" + +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', 30.00, 0.5, '20x15x3') + +print(produto_fisico_darla.descricao()) + +produto_digital_darla = ProdutoDigital('E-book', 50.00, 10) + +print(produto_digital_darla.descricao()) diff --git a/exercicios/para-sala/exercico2.py b/exercicios/para-sala/exercico2.py new file mode 100644 index 0000000..b89b91d --- /dev/null +++ b/exercicios/para-sala/exercico2.py @@ -0,0 +1,38 @@ +# Exercicio 2 Retangulo + +class Retangulo: + def __init__(self, largura, altura): + self.largura = largura + self.altura = altura + + def calcular_area(self): + # print(f'calcular a área{self.largura * self.altura}') + return self.largura * self.altura + + def calcular_perimetro(self): + return 2 * (self.largura + self.altura) + + +casa_fatima = Retangulo(5.0, 3.0) + +print(f'A casa da Fatima, tem: {casa_fatima.calcular_area()} área') + +print(f'a casa da fatima tem {casa_fatima.calcular_perimetro()} de perímetro') + + + +casa_fatima = Retangulo(9.0, 10.5) + +print(casa_fatima.calcular_area()) +print(casa_fatima.calcular_perimetro()) + +print(f'a casa da Fatima, tem:{casa_fatima.calcular_area()} área') + +print(f'a casa da Fatima tem {casa_fatima.calcular_perimetro()} de perímetro') + + + +casa_fatima = Retangulo(9.0, 10.5) + +print(casa_fatima.calcular_area()) +print(casa_fatima.calcular_perimetro()) \ No newline at end of file diff --git a/exercicios/para-sala/exercico_classes.py b/exercicios/para-sala/exercico_classes.py new file mode 100644 index 0000000..6fc695d --- /dev/null +++ b/exercicios/para-sala/exercico_classes.py @@ -0,0 +1,46 @@ + #### EM PYTHON TUDO O QUE A GENTE CRIA É OBJETO### + ### TUDO QUE VEN DEPOSI DO .(PONTO) SÃO MÉTODOS### + +##A POO divide em 4 pilares: Abstração, Encapsulamento, Herança, Polimorfismo## + + + +class cachorro: + def __init__(self, nome, raca): # metodo construtor + self.nome = nome + self.raca = raca + + def andar(self): + print('estou andando', self.nome) + + def info(self): + print(self.nome, self.raca) + + +cachorro_lulu = cachorro('lulu', 'Harrier') + +cachorro_rex = cachorro('rex', 'Pinscher') + +# .... N objetos + +cachorro_lulu.info() + +cachorro_rex.info() + +cachorro_lulu.andar() + +print(f'nome do meu cachoro: {cachorro_lulu.nome}') + +cachorro_lulu.nome + +cachorro_rex.andar() + +b = 1 +a = 2 + +print(b.__class__) + +resp = b.__add__(a) + + +print(resp) diff --git "a/material/anota\303\247\303\265es" "b/material/anota\303\247\303\265es" new file mode 100644 index 0000000..293de68 --- /dev/null +++ "b/material/anota\303\247\303\265es" @@ -0,0 +1,58 @@ + + + # dentro do método pode usar if, else... + +# int# dá a possibilidade do "cliente" dizer o que quer.. tipo: qual o saldo + + + # exercico 1 +class conta_bancaria: + def init (self, numero_da_conta, titular_da_conta): # init(inicio) é metodo(é a ação) construtor/instabilizador + self.numero_da_conta = numero_da_conta + self.titular_da_conta = titular_da_conta # self é como se fosse um atalho, "esse é o nome" quando estamos dentro de umobjeto esse objet pertecence a essa classe. + self.saldo = 0.0 # saldo inical, titular_da_conta.... é um escolpo. python sabe que saldo pertence a floot(numeral) + + def depositar(self, valor): # depositar é o método + if valor > 0: # if(se o valor for maior que...) é uma função + text = f'Valor depositado de R${valor}, realizado com sucesso.' + self.saldo =+ valor # self.saldo = self.saldo + valor incrementador, meio que vai somando com a quantidade de dinheiro que vai entrando + print(text) + else: + print(f' O valor do deposito deve ser maior que 0') + + 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 se maior que zero.") # o 'f' é usado quando vamos usar valores dentro da função. + +contaFatima = conta_bancaria(202301, "Maria de Fatima") + +contaFatima.depositar(100) + +contaFatima.depositar(50) + +contaFatima.sacar(120) +print(contaFatima.saldo) + + + +class Animal: + def _init_(self, nome): + self.nome = nome + + def fazer_som(self): + pass +class Cahorro(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' + +############# #.....