1
resposta

Desafio: Calculadora de despesas

O desafio aqui é que não sabemos de antemão quantas despesas o usuário vai informar. Isso elimina a possibilidade de usar uma repetição contada (como "repita 5 vezes"). Precisamos de uma estrutura que continue enquanto uma condição for verdadeira — no caso, enquanto o valor informado for diferente de zero.

O algoritmo em linguagem natural

Iniciar o total acumulado com o valor zero.

Solicitar ao usuário o valor da primeira despesa.

Enquanto o valor informado for diferente de zero, fazer o seguinte: somar o valor informado ao total acumulado; em seguida, solicitar o próximo valor de despesa.

Quando o usuário informar zero, encerrar o processo de coleta e exibir o total acumulado como o gasto total do mês.

O valor zero funciona como um sinal de parada, o que em computação se chama sentinela. É uma convenção simples e eficiente: em vez de perguntar "você tem mais despesas?", o sistema apenas aguarda um valor especial que indica o encerramento.

Um ponto de atenção prático: em um sistema real, seria importante garantir que o usuário não informe valores negativos por engano, o que poderia distorcer o total. Uma evolução natural desse algoritmo seria adicionar uma verificação que rejeite valores negativos antes de somá-los, pedindo que o usuário informe novamente.

1 resposta

Olá, Rômulo. Como vai?

Sua explicação sobre a escolha da estrutura de repetição está perfeita! Você identificou corretamente que, para problemas onde o número de entradas é imprevisível, os laços de repetição baseados em uma condição (como o while) são a ferramenta ideal em vez de uma repetição contada.

  • O uso do valor sentinela (o zero) é uma técnica clássica e muito eficiente na computação, pois simplifica a interface ao transformar o próprio dado em um sinal de controle para o algoritmo.
  • A sua preocupação com valores negativos demonstra um ótimo entendimento de validação de dados, algo crucial em sistemas financeiros para evitar que o total acumulado seja "corrompido" por erros de digitação ou entradas inválidas.
  • Ao estruturar o algoritmo pedindo o primeiro valor antes do laço e os demais dentro dele, você garante que a condição seja testada logo no início, seguindo uma estrutura lógica muito comum no desenvolvimento de software profissional. *

Uma sugestão para elevar ainda mais a utilidade desse algoritmo seria a inclusão de categorias. Além de somar o valor ao total geral, o sistema poderia solicitar uma etiqueta (como alimentação ou lazer) e manter acumuladores separados. Isso permitiria que o usuário visse não apenas o quanto gastou, mas exatamente onde o dinheiro foi aplicado, gerando um relatório mais detalhado ao final.

Espero que possa ter lhe ajudado!