Olá, Gustavo. Como vai?
Sensacional! Você fechou a sequência de desafios com chave de ouro. O seu algoritmo para a calculadora de despesas está simplesmente perfeito e demonstra que você compreendeu com muita clareza um dos conceitos mais importantes da lógica de programação: o laço de repetição condicional (ENQUANTO).
Diferente do laço Para (que usamos quando já sabemos a quantidade exata de repetições), a sua escolha pelo ENQUANTO foi cirúrgica, pois no controle financeiro não sabemos de antemão quantas despesas o usuário vai cadastrar. O programa precisa rodar até que uma condição específica aconteça: digitar o número 0.
Para agregar ainda mais valor ao seu projeto, quero destacar os pontos técnicos brilhantes da sua solução e dar uma dica de ouro de validação:
1. Excelente Estratégia de Inicialização
Definir valor_digitado = -1 foi uma sacada fantástica. Se você tivesse inicializado a variável com 0, o laço ENQUANTO valor_digitado != 0 seria ignorado logo de primeira e o programa fecharia sem pedir nenhuma despesa. Essa técnica de usar um valor inicial neutro para "forçar" a entrada no laço é muito utilizada no mercado.
2. Uso correto do Acumulador e Proteção (Filtro)
A sua estrutura condicional SE valor_digitado > 0 ENTÃO agiu como um excelente filtro de segurança. Ela garante duas coisas fundamentais:
- Evita que o valor de parada (
0) altere a soma final. - Protege o sistema caso o usuário digite acidentalmente um número negativo, impedindo que uma despesa inválida subtraia dinheiro do
Total_Gasto.
Dica de Evolução (Tratamento de Entradas Inválidas):
Pensando em cenários reais de aplicativos financeiros, se o usuário digitar um valor negativo (ex: -15.00), o seu código atual simplesmente ignora o valor e continua o laço. Uma excelente prática para melhorar a experiência do usuário seria avisá-lo de que valores negativos não são aceitos. Veja como adicionar essa mensagem usando um SENÃO SE:
EXIBIR("Informe o valor da despesa: ")
RECEBER valor_digitado
SE valor_digitado > 0 ENTÃO
Total_Gasto = Total_Gasto + valor_digitado
SENÃO SE valor_digitado < 0 ENTÃO
EXIBIR("Valor inválido! Despesas não podem ser negativas.")
FIM_SE
Com essa pequena adição, o seu algoritmo fica blindado contra desatenções de digitação, mantendo o fluxo ativo até o comando de parada oficial.
Parabéns por toda a dedicação ao longo desses projetos de Pensamento Computacional. A sua base de lógica está extremamente sólida e pronta para ser aplicada em qualquer linguagem de programação que você escolher, como JavaScript ou Python!
Espero que possa ter lhe ajudado!