Olá, Dannyel! Como vai?
O seu algoritmo ficou excelente! Você capturou com perfeição o coração do desafio, que era identificar a necessidade de um laço de repetição condicional (um loop que roda enquanto uma condição for verdadeira) para somar as despesas sem que o usuário precise dizer a quantidade exata delas antes.
A sua sacada de adicionar uma etapa de confirmação quando o usuário digita zero ("solicitar que confirme se despesa igual zero") foi um toque de mestre em termos de Experiência do Usuário (UX). Na vida real, o usuário pode digitar zero por engano, e essa confirmação evita que ele perca todo o progresso da digitação. Parabéns pela visão prática!
Analisando o Fluxo Lógico
Do ponto de vista do Pensamento Computacional, o seu algoritmo está muito bem desenhado. Ele segue perfeitamente a estrutura de:
- Inicialização:
despesas total = zero (criar a variável acumuladora). - Entrada de dados:
pegar despesa. - Tomada de Decisão (Condicional): Verificar se o valor é zero para decidir se continua somando ou se encerra.
Se fôssemos desenhar esse algoritmo em um fluxograma de programação para visualizar o caminho do código, ele ficaria com essa estrutura:
Um pequeno ajuste na repetição (Linguagem Natural)
Para que o seu algoritmo em linguagem natural fique 100% blindado e pronto para ser transformado em código (como em Python ou JavaScript), só falta deixar explícito o momento em que o sistema volta para pegar a próxima despesa.
Do jeito que está escrito, o sistema pega a despesa uma vez e segue direto para o fim. Precisamos indicar que, se a resposta for "não" (ou seja, a despesa não é zero), o sistema deve repetir o processo.
Veja como podemos reescrever o seu algoritmo mantendo todas as suas ideias ótimas (incluindo a confirmação), mas deixando o ciclo de repetição bem claro:
Início
- Defina
despesas_totais = 0 - Repita as seguintes etapas:
Peça para o usuário digitar o valor da despesa_atual.
Se despesa_atual for igual a 0:
Peça para o usuário confirmar: "Deseja mesmo encerrar?"
Se a resposta for Sim:
Interrompa a repetição (saia do loop).
Se a resposta for Não:
Ignore o zero e continue o processo.
Senão (se a despesa for maior que zero):
Some o valor: despesas_totais = despesas_totais + despesa_atual.
- Apresente na tela o valor de
despesas_totais.
Fim
Esse pequeno ajuste de indicar o início da repetição e o momento de "interromper" deixa o seu algoritmo impecável sob a ótica da lógica de programação. Parabéns pela excelente evolução e por continuar compartilhando suas soluções no fórum!
Espero que possa ter lhe ajudado!