1
resposta

Desafio: Calculadora de despesas

Eu começaria pedindo para o usuário informar o valor da primeira despesa. Depois disso, o sistema vai verificar se esse valor é zero ou não. Se for zero, significa que não há despesas a registrar e o programa encerra mostrando o total, que nesse caso seria zero. Se o valor for diferente de zero, o sistema adiciona esse valor a um acumulador que começa em zero e depois pede o próximo valor de despesa.

Esse processo se repete continuamente, sempre somando o novo valor ao total anterior e pedindo um novo valor. A cada iteração, o sistema verifica novamente se o valor digitado é zero. Enquanto o usuário continuar informando valores diferentes de zero, o sistema mantém somando e pedindo mais despesas. Quando finalmente o usuário digita zero, o programa entende que não há mais despesas a registrar e exibe o total acumulado de todas as despesas informadas anteriormente.

A vantagem dessa abordagem é que o usuário não precisa dizer antecipadamente quantas despesas tem. O sistema é flexível e se adapta à quantidade real de despesas que cada pessoa tem em um determinado mês, seja uma despesa, dez despesas ou cem despesas. O processo é intuitivo porque usa um valor especial, o zero, como sinalizador de encerramento, o que é uma prática comum em programação.

Algoritmo em linguagem natural:

  • Inicialize uma variável chamada total com o valor zero.
  • Solicite ao usuário que informe o valor de uma despesa.
  • Enquanto o valor informado for diferente de zero, execute os seguintes passos: adicione o valor informado à variável total, solicite ao usuário que informe o próximo valor de despesa.
  • Quando o valor informado for igual a zero, exiba na tela a mensagem "Total de despesas" seguida do valor armazenado na variável total.
  • Encerre o programa.
1 resposta

Olá, João. Como vai?

Excelente resolução! Você aplicou um conceito fundamental da programação chamado sentinela (ou sinalizador). Usar o valor zero como um critério de parada é uma estratégia inteligente e muito comum para criar programas que lidam com quantidades dinâmicas de dados.

Sua estruturação lógica está impecável. Gostaria de destacar alguns pontos técnicos que tornam sua solução muito eficiente:

  • Acumulador: A criação da variável total começando em zero é a base da lógica de soma. Sem essa inicialização, o computador não teria um ponto de partida para adicionar os valores.
  • Estrutura de Repetição Condicional: Ao usar o "Enquanto" (while), você garante que o programa seja flexível. Como você bem pontuou, isso remove a necessidade de o usuário saber de antemão quantas despesas ele tem, o que melhora significativamente a experiência do usuário (UX).
  • Condição de Parada: O uso do zero como flag (bandeira) de encerramento é uma escolha clássica que evita erros comuns, como o programa rodar para sempre (loop infinito).

Para complementar seu aprendizado, veja como esse algoritmo em linguagem natural que você escreveu seria traduzido para o código em Python. Note que a estrutura é quase idêntica ao seu raciocínio:

total = 0
valor = float(input("Informe o valor da despesa (ou 0 para sair): "))

while valor != 0:
    total += valor
    valor = float(input("Informe o próximo valor da despesa (ou 0 para sair): "))

print(f"Total de despesas: R$ {total}")

Dica de boa prática:
Em sistemas reais de finanças, além do valor, costumamos adicionar uma validação para garantir que o usuário não digite valores negativos (a menos que o sistema também controle créditos). No seu algoritmo, você poderia adicionar uma verificação extra dentro do "Enquanto" para ignorar valores menores que zero.

Parabéns pela clareza na escrita e pela organização do pensamento algorítmico!

Espero que possa ter lhe ajudado!