Olá, Herley. Como vai?
Seu algoritmo para controle financeiro está excelente! Você utilizou um conceito fundamental na programação chamado Laço de Repetição (Loop) com uma Condição de Parada. Essa é a forma mais eficiente de lidar com entradas de dados onde não sabemos de antemão quantas despesas o usuário possui.
Para agregar valor ao seu desafio, vamos analisar como a sua lógica se conecta com as boas práticas de desenvolvimento:
Pontos Fortes do seu Algoritmo
- Acumulador: A variável
Total de Despesas funciona como um acumulador. Essa estrutura Total = Total + Valor é a base para cálculos estatísticos e financeiros em qualquer sistema. - Flag de Saída: Usar o valor
0 para encerrar o programa é uma técnica clássica e intuitiva. Isso dá controle total ao usuário sobre o fluxo do software. - Feedback em Tempo Real: Ao mostrar o tipo e o valor logo após a digitação, você garante que o usuário saiba que o dado foi processado corretamente.
Dica de Ouro: A Ordem dos Fatores
Uma pequena sugestão para tornar o seu algoritmo ainda mais "limpo": note que você pede o Tipo de despesa depois de somar o valor. Se o usuário digitar 0 no valor para sair, o programa para antes de perguntar o tipo, o que é ótimo!
No entanto, se você quiser gerar um relatório detalhado ao final, você poderia armazenar esses dados em uma Lista.
Exemplo de evolução:
- Inicie
Lista_de_Gastos como vazia. - No "Repita", além de somar o total, você daria um
Adicionar (Tipo + Valor) à Lista_de_Gastos. - No fim, além do total, você poderia mostrar a lista completa para o usuário conferir.
Refinando a Lógica
Uma coisa que aprendemos no pensamento computacional é a prevenção de erros. O que aconteceria se o usuário digitasse um valor negativo por engano? Uma boa adição seria:
Se Valor da despesa < 0:
Exiba "Valor inválido! Digite um número positivo."
Parabéns pela iniciativa de aplicar o conteúdo do curso em um problema tão real e útil quanto as finanças pessoais!
Como você imagina que poderia categorizar essas despesas (ex: Alimentação, Lazer, Aluguel) para mostrar um gráfico no final?
Espero que possa ter lhe ajudado!