1 valor inicial de zero
2 Campo para inserção da despesa em linha seguinte a digitada quando for diferente de zero
3 se ocorrer a digitação 0, some todas as linhas acima e destaque o valor total.
1 valor inicial de zero
2 Campo para inserção da despesa em linha seguinte a digitada quando for diferente de zero
3 se ocorrer a digitação 0, some todas as linhas acima e destaque o valor total.
Olá, Fernando. Como vai?
Excelente sugestão de desafio! A construção de uma calculadora de despesas acumulativa é um exercício clássico e perfeito para praticar os pilares do pensamento computacional, especialmente a decomposição (dividir o problema em passos), o reconhecimento de padrões e o uso de estruturas de repetição e condição.
Para enriquecer ainda mais o seu tópico e ajudar os colegas do fórum que queiram implementar a sua ideia, vou demonstrar como transformar a sua lógica de passos em um pseudocódigo estruturado e, em seguida, em um programa funcional utilizando JavaScript (que é muito utilizado aqui nos cursos da Alura).
Podemos mapear os seus três pontos da seguinte forma:
total e começamos ela com o valor 0.0, o programa para de pedir dados, faz a soma final e exibe o destaque. Se for diferente de 0, ele soma o valor ao total e continua.Aqui está uma implementação simples desse desafio que pode ser testada diretamente no console do navegador ou em um ambiente como o VS Code:
// 1. Valor inicial de zero
let totalDespesas = 0;
let continuar = true;
alert('Bem-vindo à Calculadora de Despesas! Digite os valores ou insira 0 para encerrar e somar.');
// 2. Loop para inserção das despesas em linhas seguintes
while (continuar) {
let entrada = prompt('Digite o valor da despesa (ou 0 para sair):');
// Convertemos a entrada de texto para número decimal
let valor = parseFloat(entrada);
// Validação simples para garantir que o usuário digitou um número válido
if (isNaN(valor)) {
alert('Por favor, digite um número válido.');
continue;
}
// 3. Se ocorrer a digitação 0, para o loop e destaca o total
if (valor === 0) {
continuar = false;
} else {
// Acumula o valor na variável totalDespesas
totalDespesas = totalDespesas + valor;
console.log(`Despesa adicionada: R$ ${valor.toFixed(2)} | Total atual: R$ ${totalDespesas.toFixed(2)}`);
}
}
// Destaque do valor total após a digitação do zero
alert(`=== RESULTADO FINAL ===\nO valor total de todas as despesas inseridas é: R$ ${totalDespesas.toFixed(2)}`);
console.log(`=== TOTAL DE DESPESAS: R$ ${totalDespesas.toFixed(2)} ===`);
Como você bem pontuou pela sua experiência como Fiscal de Tributos, a entrada de dados em formato de "lista de linhas" onde o gatilho de encerramento é um caractere ou número específico (conhecido na programação como valor sentinela) simula exatamente como sistemas reais de contabilidade, caixas de mercado e preenchimento de planilhas fiscais funcionam.
Parabéns por compartilhar essa dinâmica com a comunidade! Com certeza vai exercitar muito o raciocínio lógico de quem aceitar o desafio.
Espero que possa ter lhe ajudado!