Olá, Alexsandro. Como vai?
Parabéns pela excelente estruturação do seu algoritmo! A sua lógica para a "Calculadora de despesas" está impecável e descreve perfeitamente o funcionamento de um acumulador associado a uma condição de parada, que é um dos conceitos mais importantes do pensamento computacional.
Como você bem destacou no fechamento do seu post, a grande vantagem desse modelo é a flexibilidade: o programa se adapta à realidade do usuário, funcionando da mesma forma tanto para quem tem apenas 2 despesas no mês quanto para quem tem 50, sem a necessidade de engessar o sistema com um limite fixo de entradas.
Para visualizar o fluxo que você descreveu nos passos 4 a 8, podemos representá-lo através de um fluxograma. Esse modelo visual ajuda a compreender como a tomada de decisão cria um ciclo (loop) na memória do computador até que o número zero seja digitado:
Para agregar ainda mais valor ao seu aprendizado, vamos analisar de perto como dois conceitos chave do seu algoritmo se comportam na programação:
1. A variável totalGasto como Acumulador
No passo 2, você definiu o valor inicial como 0. Essa inicialização é obrigatória. Na computação, se tentamos somar um valor a uma variável que não foi criada ou que está vazia, o sistema gera um erro (geralmente do tipo Null ou Undefined). Zerar a variável garante que o computador tenha uma base matemática para começar a embutir os novos valores.
2. O Valor 0 como Sentinela (Condição de Parada)
Na programação, esse valor especial que serve unicamente para sinalizar o fim de um fluxo de leitura é chamado de valor sentinela. O uso do 0 foi uma ótima escolha, pois despesas reais nunca possuem valor igual a zero, o que anula qualquer risco de o usuário digitar esse número por engano no meio da contagem.
Se fôssemos traduzir o seu algoritmo para um pseudocódigo padrão de mercado, ele ganharia essa forma elegante:
Definir despesa, totalGasto como Real
totalGasto = 0
Exibir("Digite o valor da despesa (ou 0 para encerrar):")
Ler(despesa)
Enquanto despesa != 0 Faça
totalGasto = totalGasto + despesa
Exibir("Digite a próxima despesa (ou 0 para encerrar):")
Ler(despesa)
FimEnquanto
Exibir("O total gasto no mês foi: R$ ", totalGasto)
Sua capacidade de abstrair um problema do dia a dia (controle financeiro) e transformá-lo em instruções lógicas e sequenciais para uma máquina está excelente. Continue compartilhando suas soluções no fórum!
Espero que possa ter lhe ajudado!