diff --git a/exercicios/para-casa/Veiculo.py b/exercicios/para-casa/Veiculo.py new file mode 100644 index 0000000..d226d51 --- /dev/null +++ b/exercicios/para-casa/Veiculo.py @@ -0,0 +1,58 @@ +class Veiculo: + def __init__(self, modelo, ano_veiculo, preco_veiculo): + self.modelo = modelo + self.ano_veiculo = ano_veiculo + self.preco_veiculo = preco_veiculo + + + def calcular_imposto(self): + # 10% do preço do veículo. + imposto = self.preco_veiculo * 0.10 + return imposto + + def __str__(self): + return f"Modelo: {self.modelo}, Ano: {self.ano_veiculo}, Preço: R${self.preco_veiculo:.2f}" + + +class Carro (Veiculo): + def __init__(self, modelo, ano_veiculo, preco_veiculo, marca): + super().__init__(modelo, ano_veiculo, preco_veiculo) + self.marca = marca + + def desconto_carro(self): + # 5% no preço do carro. + imposto = self.preco_veiculo * 0.05 + return self.preco_veiculo - imposto + + def __str__(self): + return f"Modelo: {self.modelo}, Ano: {self.ano_veiculo}, Preço: R${self.preco_veiculo:.2f}" + + +class Moto( Veiculo): + def __init__(self, modelo, ano_veiculo, preco_veiculo, cilindrada): + super().__init__(modelo, ano_veiculo, preco_veiculo) + self.cilindrada = cilindrada + + + def imposto_moto(self): + + imposto_moto = self.preco_veiculo * 0.05 + return imposto_moto + + def __str__(self): + return f"Modelo: {self.modelo}, Ano: {self.ano_veiculo}, Preço: R${self.preco_veiculo:.2f}" + + + +carro_carol = Carro('HB20', 2023, 140000.00, 'Hyundai') +moto_carol = Moto( 'PCX', 2023, 26000.00, 150) + +print("Descrição do Carro:") +print(carro_carol) +print(f"Imposto do Carro: R${carro_carol.calcular_imposto():.2f}") +print(f"Preço com Desconto do Carro: R${carro_carol.desconto_carro():.2f}") +print("**************************") +print("Descrição da Moto") +print(moto_carol) +print(f"Imposto da Moto: R${moto_carol.imposto_moto():.2f}") + \ No newline at end of file diff --git a/exercicios/para-sala/exemplo_eranca.py b/exercicios/para-sala/exemplo_eranca.py new file mode 100644 index 0000000..4f8c7ee --- /dev/null +++ b/exercicios/para-sala/exemplo_eranca.py @@ -0,0 +1,55 @@ +"""class Animal: + def __init__(self, nome): + self.nome = nome + + def fazer_som(self): + pass + + +class Cachorro(Animal): # herda com a classe entre pareteses + def fazer_som (self): + return f'{ self.nome} faz latido' + def andar(self) + pass # quando não quizer colocar nada dentro uso pass + +class Gato(Animal): + def fazer_som (self): + return f'{ self.nome} faz 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,dade, setor, nivel ): + super().__init__ (nacionalidade,genero,nome,dade) + 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() + + diff --git a/exercicios/para-sala/exercicio_classe.py b/exercicios/para-sala/exercicio_classe.py new file mode 100644 index 0000000..3a14709 --- /dev/null +++ b/exercicios/para-sala/exercicio_classe.py @@ -0,0 +1,33 @@ + +class cachorro: + def __init__ ( self, nome,raca ): #init 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', 'Hammier') +cachorro_rex = cachorro('rex','Pinscher') + +print(cachorro_lulu.info()) + + +cachorro_lulu.info() +cachorro_rex.info() + +cachorro_lulu.andar() # depois do ponto é o metodo +cachorro_rex.andar() + + +"""A POO divide em 4 pilares: +Abstração +Encapsulamento +Herança +Polimorfismo + """ + diff --git a/exercicios/para-sala/exercicio_classes_conta.py b/exercicios/para-sala/exercicio_classes_conta.py new file mode 100644 index 0000000..2ab3476 --- /dev/null +++ b/exercicios/para-sala/exercicio_classes_conta.py @@ -0,0 +1,43 @@ + +class ContaBancaria: + + def __init__ (self, num_conta,nome_titular): # saldo não pq é zerado + self.num_conta = num_conta + self.nome_titular = nome_titular + self.saldo_conta = 0.0 + + def depositar(self, valor): + if valor > 0: # tratamento d erro + self.saldo_conta =+ valor + print ( f' o valor depositado é: ', valor) + else: + print( " o valor do deposito deve ser maior que 0.0") + #print( self.num_conta, self.saldo_conta) + #self.valor = float(input('digite o valor a ser depositado' )) + #print ( f' o saldo atual é: ', saldo_conta) + + + + + def sacar( self, valor): + if valor > 0: + if self.saldo_conta >= 0: + self.saldo_conta -= 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.") + + +ContaCarol = ContaBancaria( 202301, 'carol ribeiro') +ContaCarol.depositar(100) + +ContaCarol.sacar(10) +print(ContaCarol.saldo_conta) + +ContaLais = ContaBancaria( 202302, 'Lais') +ContaLais.depositar(80) +ContaLais.sacar(1000) +print(ContaLais.saldo_conta) \ No newline at end of file diff --git a/exercicios/para-sala/exercicio_classes_retangulo.py b/exercicios/para-sala/exercicio_classes_retangulo.py new file mode 100644 index 0000000..358f55b --- /dev/null +++ b/exercicios/para-sala/exercicio_classes_retangulo.py @@ -0,0 +1,41 @@ + +class Retangulo: + + def __init__(self, altura, largura): + # self.area = area + #self.perimetro = perimetro + self.altura = altura + self.largura = largura + + def calcular_area( self): + # ou pode usar o self.area = self.altura * self.largura + return self.altura*self.largura + print(f' a area do retangulo é = {self.area }') + + + + def calcular_perimetro( self): + # ou pode usar o self.perimetro = 2* (self.altura + self.largura) + return 2* self.altura+self.largura + print(f' o valor do perimetro é = { self.perimetro}') + + +casa_carol = Retangulo (12.6, 14.5) + +casa_carol.calcular_area() +print(f' A casa da carol, tem {casa_carol.calcular_area() } de area ') +casa_carol.calcular_perimetro() +print(f' A casa da carol, tem {casa_carol.calcular_perimetro() } de perimetro ') + + +casa_largata = Retangulo(2, 3) +casa_largata.calcular_area +print(f' A casa da largata, tem {casa_largata.calcular_area() } de area ') +casa_largata.calcular_perimetro +print(f' A casa da largata, tem {casa_largata.calcular_perimetro() } de perimetro ') + + + + + + \ No newline at end of file diff --git a/exercicios/para-sala/exercicio_eranca_Produtos.py b/exercicios/para-sala/exercicio_eranca_Produtos.py new file mode 100644 index 0000000..db3784f --- /dev/null +++ b/exercicios/para-sala/exercicio_eranca_Produtos.py @@ -0,0 +1,37 @@ +class Produto: + def __init__(self, nome, preco): + self.nome = nome + self.preco = preco + + + def descricao ( self): + return f'Nome: {self.nome}, Preco: {self.preco}' + +class ProdutoFisico( Produto): + def __init__(self, nome,preco,peso, dimencoes): + + # + super().__init__ (nome,preco) + self.peso = peso + self.dimencoes = dimencoes + def descricao(self): + return super().descricao() + f'Peso: {self.peso}, Dimenções: { self.dimencoes}' + + + +class ProdutoDigital(Produto): + def __init__(self, nome,preco,tamanho_arq, tipo): + + # + super().__init__ (nome,preco) + self.tamanho_arq = tamanho_arq + self.tipo= tipo + def descricao(self): + return super().descricao() + f'Tamanho_arq: {self.tamanho_arq}, Tipo: { self.tipo}' + + + +produto_fisico = ProdutoFisico ('mesa', 100.00, 20, '2x2x1.5') +print (produto_fisico.descricao()) +produto_digital = ProdutoDigital('manual antirracista', 100.00, 12, 'E-book') +print (produto_digital.descricao()) \ No newline at end of file diff --git a/exercicios/para-sala/exercicio_extra.py b/exercicios/para-sala/exercicio_extra.py new file mode 100644 index 0000000..93dc517 --- /dev/null +++ b/exercicios/para-sala/exercicio_extra.py @@ -0,0 +1,46 @@ +""" +exercício extra +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_proprietario, preco_base): + self.endereco = endereco + self.nome_proprietario = nome_proprietario + self.preco_base = preco_base + + + + + def calcular_aluguel(self): + return self.preco_base + +class Casa (Imovel): + def __init__(self, endereco, nome_proprietario, preco_base, area_terreno): + super().__init__(endereco, nome_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_proprietario, preco_base, num_quartos): + super().__init__(endereco, nome_proprietario, preco_base) + self.num_quartos = num_quartos + + def calcular_aluguel(self): + resp = self.preco_base + (self.numero_quartos * 300) + return resp + +casa_maria = Casa("122 Rua das Flores", "Maria", 1500, 120) +apartamento_carlos = Apartamento("333, Av. João Mendes", 'Carlos Jose', 1200, 2) + + +print(casa_maria.calcular_aluguel()) \ No newline at end of file diff --git "a/exercicios/para-sala/exerc\303\255cio_eranca_ve\303\255culos.py" "b/exercicios/para-sala/exerc\303\255cio_eranca_ve\303\255culos.py" new file mode 100644 index 0000000..111e4c0 --- /dev/null +++ "b/exercicios/para-sala/exerc\303\255cio_eranca_ve\303\255culos.py" @@ -0,0 +1,47 @@ + + +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, cavalos): + #cavalos ): + super().__init__ (marca,modelo,ano) + self.num_portas = num_portas + self.cavalos = cavalos + def descricao(self): + return super().descricao() + f'Portas: {self.num_portas}, Cavalos: { self.cavalos}' + +class Moto(Veiculo): + def __init__(self, marca,modelo,ano, estilo, motor): + #motor ): + super().__init__ (marca,modelo,ano) + self.estilo = estilo + self.motor = motor + def descricao(self): + return super().descricao() + f' Estilo: {self.estilo}, Motor: {self.motor}' + #f'Estilo:{self.estilo}, Motor{self.motor}' + super().descricao + + +carro = Carro( 'Toyota', 'Corolla', 2023, 4, 40) +print (carro.descricao()) +moto = Moto( 'Honda', 'ADV', 2023, 'street', 260) +print (moto.descricao()) + +carro_carol = Carro('Fiat', ' uno', 2023, 2 , 20) +print (carro_carol.descricao()) +moto_carol = Moto('Honda', ' PCX', 2018, ' Street', 150) +print (moto_carol.descricao()) + + + + + \ No newline at end of file diff --git a/exercicios/para-sala/veiculo2.py b/exercicios/para-sala/veiculo2.py new file mode 100644 index 0000000..dc25fda --- /dev/null +++ b/exercicios/para-sala/veiculo2.py @@ -0,0 +1,56 @@ +class Veiculo: + def __init__(self, modelo, ano_veiculo, preco_veiculo): + self.modelo = modelo + self.ano_veiculo = ano_veiculo + self.preco_veiculo = preco_veiculo + + def calcular_imposto(self): + # 10% do preço do veículo. + imposto = self.preco_veiculo * 0.10 + return imposto + + def __str__(self): + return f"Modelo: {self.modelo}, Ano: {self.ano_veiculo}, Preço: R${self.preco_veiculo:.2f}" + + +class Carro(Veiculo): + def __init__(self, modelo, ano_veiculo, preco_veiculo, marca): + super().__init__(modelo, ano_veiculo, preco_veiculo) + self.marca = marca + + def desconto(self): + # 5% no preço do carro. + desconto = self.preco_veiculo * 0.05 + return self.preco_veiculo - desconto + + def __str__(self): + return f"Carro - Marca: {self.marca}, {super().__str__()}" + + +class Moto(Veiculo): + def __init__(self, modelo, ano_veiculo, preco_veiculo, cilindrada): + super().__init__(modelo, ano_veiculo, preco_veiculo) + self.cilindrada = cilindrada + + def calcular_imposto(self): + # 5% do preço do veículo para motos. + imposto = self.preco_veiculo * 0.05 + return imposto + + def __str__(self): + return f"Moto - Cilindrada: {self.cilindrada} cc, {super().__str__()}" + + +# Criando instâncias de Carro e Moto +carro_carol = Carro('HB20', 2023, 140000.00, 'Hyundai') +moto_carol = Moto('PCX', 2023, 26000.00, 150) + +# Imprimindo as informações dos veículos +print("Descrição do Carro:") +print(carro_carol) +print(f"Imposto do Carro: R${carro_carol.calcular_imposto():.2f}") +print(f"Preço com Desconto do Carro: R${carro_carol.desconto():.2f}") +print("**************************") +print("Descrição da Moto") +print(moto_carol) +print(f"Imposto da Moto: R${moto_carol.calcular_imposto():.2f}")