Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: Calculadora de despesas

ALGORITMO Controle Financeiro Simples

INÍCIO
// 1. DADOS DE ENTRADA E ACUMULADOR
Definir Total_Gasto = 0
Definir valor_digitado = -1 // Inicializa com um valor qualquer diferente de 0 para começar o fluxo

EXIBIR("=== Sistema de Controle Financeiro ===")
EXIBIR("Digite o valor de cada despesa. Digite 0 para encerrar e ver o total.")

// 2 e 3. LAÇO DE REPETIÇÃO E DECISÃO
// O sistema vai repetir esse bloco ENQUANTO o usuário não digitar 0
ENQUANTO valor_digitado != 0 FAÇA
    
    EXIBIR("Informe o valor da despesa: ")
    RECEBER valor_digitado
    
    // Se for um valor real de despesa, acumula na soma
    SE valor_digitado > 0 ENTÃO
        Total_Gasto = Total_Gasto + valor_digitado
    FIM_SE
    
FIM_ENQUANTO

// 4. AÇÃO FINAL
// O usuário digitou 0, o loop quebrou e o sistema mostra o resultado
EXIBIR("---------------------------------------")
EXIBIR("Inserção concluída.")
EXIBIR("O total gasto no período foi de: R$ " + Total_Gasto)
1 resposta

Olá, Gustavo. Como vai?

Sensacional! Você fechou a sequência de desafios com chave de ouro. O seu algoritmo para a calculadora de despesas está simplesmente perfeito e demonstra que você compreendeu com muita clareza um dos conceitos mais importantes da lógica de programação: o laço de repetição condicional (ENQUANTO).

Diferente do laço Para (que usamos quando já sabemos a quantidade exata de repetições), a sua escolha pelo ENQUANTO foi cirúrgica, pois no controle financeiro não sabemos de antemão quantas despesas o usuário vai cadastrar. O programa precisa rodar até que uma condição específica aconteça: digitar o número 0.

Para agregar ainda mais valor ao seu projeto, quero destacar os pontos técnicos brilhantes da sua solução e dar uma dica de ouro de validação:

1. Excelente Estratégia de Inicialização
Definir valor_digitado = -1 foi uma sacada fantástica. Se você tivesse inicializado a variável com 0, o laço ENQUANTO valor_digitado != 0 seria ignorado logo de primeira e o programa fecharia sem pedir nenhuma despesa. Essa técnica de usar um valor inicial neutro para "forçar" a entrada no laço é muito utilizada no mercado.

2. Uso correto do Acumulador e Proteção (Filtro)
A sua estrutura condicional SE valor_digitado > 0 ENTÃO agiu como um excelente filtro de segurança. Ela garante duas coisas fundamentais:

  • Evita que o valor de parada (0) altere a soma final.
  • Protege o sistema caso o usuário digite acidentalmente um número negativo, impedindo que uma despesa inválida subtraia dinheiro do Total_Gasto.

Dica de Evolução (Tratamento de Entradas Inválidas):
Pensando em cenários reais de aplicativos financeiros, se o usuário digitar um valor negativo (ex: -15.00), o seu código atual simplesmente ignora o valor e continua o laço. Uma excelente prática para melhorar a experiência do usuário seria avisá-lo de que valores negativos não são aceitos. Veja como adicionar essa mensagem usando um SENÃO SE:

    EXIBIR("Informe o valor da despesa: ")
    RECEBER valor_digitado
    
    SE valor_digitado > 0 ENTÃO
        Total_Gasto = Total_Gasto + valor_digitado
    SENÃO SE valor_digitado < 0 ENTÃO
        EXIBIR("Valor inválido! Despesas não podem ser negativas.")
    FIM_SE

Com essa pequena adição, o seu algoritmo fica blindado contra desatenções de digitação, mantendo o fluxo ativo até o comando de parada oficial.

Parabéns por toda a dedicação ao longo desses projetos de Pensamento Computacional. A sua base de lógica está extremamente sólida e pronta para ser aplicada em qualquer linguagem de programação que você escolher, como JavaScript ou Python!

Espero que possa ter lhe ajudado!