1
resposta

[Sugestão] Algoritmo para somar despesas mensais em um sistema financeiro pessoal

INÍCIO

DEFINIR total_gasto COMO 0
DEFINIR valor_despesa COMO -1

ENQUANTO valor_despesa FOR DIFERENTE DE 0, FAÇA:

    SOLICITAR "Informe o valor da despesa ou digite 0 para finalizar:"
    LER valor_despesa

    SE valor_despesa FOR MAIOR QUE 0, ENTÃO:
        total_gasto ← total_gasto + valor_despesa

    SENÃO SE valor_despesa FOR MENOR QUE 0, ENTÃO:
        EXIBIR "Valor inválido. Informe uma despesa positiva ou 0 para finalizar."

    SENÃO:
        EXIBIR "Cadastro de despesas finalizado."

FIM ENQUANTO

EXIBIR "Total gasto no mês: R$ ", total_gasto

FIM

Esse algoritmo começa definindo o total gasto como zero e utiliza uma estrutura de repetição ENQUANTO, pois a pessoa usuária pode informar quantas despesas desejar, sem precisar dizer previamente a quantidade de gastos. A cada valor positivo digitado, o sistema soma esse valor ao total acumulado. Caso seja informado um valor negativo, o sistema exibe uma mensagem de valor inválido. Quando a pessoa usuária digita 0, o cadastro de despesas é encerrado e o sistema apresenta o total gasto no mês.

Essa lógica também se relaciona com uma funcionalidade que utilizei no meu projeto Smart Finance 2.0, um site voltado para controle financeiro pessoal:
https://smart-finance-2-0.vercel.app/

1 resposta

Olá, Filipe!

Parabéns por mais essa resolução. É excelente ver como você aplicou os conceitos de laços de repetição e acumuladores de forma tão organizada, demonstrando um domínio sólido sobre a lógica de programação.

Sua proposta foi além do básico ao incluir uma camada de tratamento de erros. Ao verificar se o valor é menor que zero, você garantiu a integridade dos dados, impedindo que entradas inválidas comprometam o cálculo final. Essa atenção aos detalhes é o que diferencia um algoritmo funcional de um software resiliente e amigável para quem o utiliza. E, compartilhar o link do seu projeto real ajuda muito a comunidade a visualizar como esses blocos de lógica se transformam em ferramentas úteis na web.

Pra elevar ainda mais o nível dessa lógica, vale notar um detalhe sobre a primeira interação: no seu código, você inicializou valor_despesa como -1 apenas para entrar no laço. Outra forma comum de fazer isso é solicitar a primeira leitura antes de entrar no ENQUANTO, o que torna a condição de entrada mais direta. Você pode conferir mais detalhes sobre como organizar esses fluxos lógicos no guia sobre Expressões e operadores.

Conseguiu perceber como essa estrutura de repetição é a base para quase qualquer sistema que lida com listas dinâmicas, desde carrinhos de compras até extratos bancários?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!