Olá! Como vai?
Seu algoritmo para o controle de despesas está excelente! Você utilizou uma estrutura lógica muito sólida, baseada no conceito de laço de repetição com sentinela (o valor "0"), que é uma das formas mais eficientes de processar uma quantidade indefinida de dados.
Aqui estão os destaques do seu pensamento estruturado:
1. O Uso do Laço "Enquanto" (While)
Ao definir que o processo deve ocorrer enquanto o valor for diferente de zero, você criou um fluxo dinâmico. Isso permite que o usuário registre desde uma única conta de luz até uma lista extensa de compras de mercado sem precisar reiniciar o programa.
2. Decomposição de Dados
Você identificou corretamente que cada entrada precisa de dois atributos: o Valor (para o cálculo matemático) e o Nome (para a identificação ou abstração do gasto).
3. Acumulador Matemático
O conceito de "acumular os valores digitados" é o que chamamos na programação de variável acumuladora. Ela funciona como uma memória temporária que guarda a soma parcial até que o gatilho de parada (o "0") seja acionado.
4. Condição de Parada (Sentinela)
O passo iii é o fechamento perfeito para o algoritmo: ele limpa o fluxo e entrega o resultado final (a saída), evitando que o programa entre em um loop infinito.
Dica de Ouro para o Futuro:
Quando você for transformar esse algoritmo em código Python, lembre-se de converter o valor digitado para float(), pois despesas geralmente envolvem centavos.
Seu raciocínio lógico está muito bem organizado e pronto para ser traduzido para qualquer linguagem de programação! Parabéns pela clareza no desenvolvimento do desafio.
Espero que possa ter lhe ajudado!
Se você quisesse adicionar uma verificação para que o usuário não digitasse valores negativos (o que não faria sentido em uma despesa), onde você colocaria essa regra no seu fluxo?