(3,5 pontos) Implemente uma classe que represente um produto em estoque (código, descrição, quantidade). Esta classe deve possuir, além dos métodos necessários para a atribuição inicial de valores, outros dois que permitam alterar a quantidade do produto. O primeiro método deve servir para adicionar uma quantidade ao estoque já existente. O segundo método deve servir para remover uma quantidade ao estoque já existente. Depois de criar tal classe escreva um programa que permita informar valores iniciais para um produto, depois alterar a sua quantidade em estoque e, em seguida, apresentar as informações finais do mesmo.
Dica: exemplo da assinatura dos métodos de alteração de quantidade:
void adicionar(int quantidade);
void remover(int quantidade);

Passo 1

Beleza, vamos lá! O enunciado pede para a gente criar uma classe que vai representar um produto em estoque. Essa classe precisa ter três informações principais: código, descrição e quantidade. Além disso, precisamos criar métodos para adicionar e remover quantidade do estoque. Vamos usar conceitos de Programação Orientada a Objetos (POO) para resolver isso. Vamos precisar entender o que são classes, atributos e métodos para seguir em frente.

Passo 2

Primeiro, vamos definir a estrutura básica da nossa classe chamada Produto. Em POO, uma classe é como um molde para criar objetos específicos. No nosso caso, cada objeto da classe Produto vai ter um código, uma descrição e uma quantidade em estoque.
class Produto:
    def __init__(self, codigo, descricao, quantidade):
        self.codigo = codigo
        self.descricao = descricao
        self.quantidade = quantidade
Aqui, o método __init__ é o construtor que nos permite atribuir valores iniciais aos atributos quando criamos um novo produto.

Passo 3

Agora, precisamos criar dois métodos dentro da classe para alterar a quantidade do produto: um para adicionar e outro para remover. Esses métodos vão manipular o atributo quantidade.
    def adicionar(self, quantidade):
        self.quantidade += quantidade
        print(f"{quantidade} unidades adicionadas. Estoque atual: {self.quantidade}")

    def remover(self, quantidade):
        if quantidade > self.quantidade:
            print("Erro: Não há quantidade suficiente em estoque para remover.")
        else:
            self.quantidade -= quantidade
            print(f"{quantidade} unidades removidas. Estoque atual: {self.quantidade}")
No método adicionar, simplesmente somamos a quantidade passada ao estoque atual. No método remover, primeiro verificamos se há quantidade suficiente antes de remover para evitar que o estoque fique negativo.

Passo 4

Com a classe Produto pronta, vamos agora criar um programa principal que vai interagir com o usuário. Esse programa vai pedir para o usuário informar os valores iniciais do produto, depois permitir que ele adicione ou remova quantidades e, por fim, mostrar as informações finais do produto.
def main():
    # Informando valores iniciais
    codigo = input("Digite o código do produto: ")
    descricao = input("Digite a descrição do produto: ")
    quantidade = int(input("Digite a quantidade inicial: "))
    
    produto = Produto(codigo, descricao, quantidade)
    
    # Alterando a quantidade
    adicionar = int(input("Digite a quantidade para adicionar: "))
    produto.adicionar(adicionar)
    
    remover = int(input("Digite a quantidade para remover: "))
    produto.remover(remover)
    
    # Informações finais
    print("\nInformações finais do produto:")
    print(f"Código: {produto.codigo}")
    print(f"Descrição: {produto.descricao}")
    print(f"Quantidade em estoque: {produto.quantidade}")

if __name__ == "__main__":
    main()
Nesse trecho, usamos a função input para receber os dados do usuário. Convertendo a entrada de quantidade para inteiro com int() porque estamos lidando com números.

Passo 5

Vamos juntar tudo e testar o nosso programa! Quando rodar, ele vai pedir para você inserir os dados do produto, adicionar e remover quantidades, e depois mostrar o resultado final.
Exemplo de execução:
Digite o código do produto: 001
Digite a descrição do produto: Caneta
Digite a quantidade inicial: 50
Digite a quantidade para adicionar: 20
20 unidades adicionadas. Estoque atual: 70
Digite a quantidade para remover: 30
30 unidades removidas. Estoque atual: 40

Informações finais do produto:
Código: 001
Descrição: Caneta
Quantidade em estoque: 40

Resposta

Criamos uma classe Produto que representa um produto em estoque com atributos de código, descrição e quantidade. Implementamos métodos para adicionar e remover quantidades do estoque, garantindo que não haja remoção de mais itens do que o disponível. Por meio de um programa interativo, o usuário pode inserir os dados iniciais do produto, realizar alterações na quantidade e visualizar as informações finais do estoque.

Exercícios relacionados

(3,5 pontos) Crie uma classe para modelar um aluno (nome, média, frequência). A classe deve disponibilizar métodos para cadastrar os dados do aluno. Além disso, a classe deve disponibilizar um método que permita consultar se o aluno está aprovado ou reprovado. O método retornará 1 caso o aluno esteja aprovado e 0 caso o aluno esteja reprovado. O aluno aprovado é aquele que tem média igual ou superior a 6 e frequência igual ou superior a 75.
Crie então um programa, utilizando a classe criada, que permita ao usuário informar os dados de um aluno. O programa deve então exibir na tela se o aluno está aprovado ou reprovado.
Explique com suas palavras o Algoritmo Retropropagação do Erro. (valor = 2,0)
(3 pontos) Implemente um programa utilizando a classe de produto descrita no enunciado da questão 2, que permita controlar o estoque de 5 produtos em memória. O cadastro dos 5 produtos ocorre no início da execução do programa. Depois, o sistema deve apresentar um menu que permite ao usuário realizar as operações de alteração de estoque para qualquer um dos produtos desejados.
Crie um programa (notas_lista.py) que cria uma lista com 10 posições e peça para o usuário entrar com as 10 notas. As notas podem ser números reais.