inicio
peça para que o usuário informe um valor;
enquanto o valor digitado for diferente de 0 some os valores;
quando zero for digitado pelo usuário apresente a soma total como resposta final.
fim algoritmo
inicio
peça para que o usuário informe um valor;
enquanto o valor digitado for diferente de 0 some os valores;
quando zero for digitado pelo usuário apresente a soma total como resposta final.
fim algoritmo
Olá, Gabriel. Como vai?
O seu pseudocódigo está excelente e demonstra uma ótima compreensão de como funcionam os laços de repetição baseados em uma condição de parada, que neste caso é a digitação do número zero.
Para que o seu algoritmo funcione de forma 100% precisa na prática, há apenas um pequeno detalhe na ordem das etapas que precisamos ajustar. Do jeito que está estruturado, o programa pede o valor uma única vez antes de entrar no laço. Se o usuário digitar um número diferente de zero, o laço começará, mas ficará somando esse mesmo número infinitamente, pois o programa não pede um novo valor dentro do laço.
A estrutura ideal para esse tipo de problema segue a seguinte lógica:
Veja como o seu pseudocódigo fica corrigido e mais completo:
inicio
declarar soma = 0;
declarar valor;
peça para que o usuário informe um valor;
guarde o valor digitado;
enquanto o valor digitado for diferente de 0 faça:
soma = soma + valor;
peça para que o usuário informe um valor;
guarde o valor digitado;
fim enquanto
apresente a soma total como resposta final;
fim algoritmo
Para ajudar a visualizar como essa lógica se comporta em uma linguagem de programação real, veja este exemplo estruturado em JavaScript:
let soma = 0;
let valor;
// O loop continuará rodando enquanto o valor digitado não for 0
do {
valor = parseFloat(prompt("Informe um valor (ou digite 0 para sair):"));
// Se o usuário digitou um número válido, adiciona à soma
if (!isNaN(valor)) {
soma = soma + valor;
}
} while (valor !== 0);
console.log("A soma total das despesas é: " + soma);
do...while. Ele é perfeito para esse cenário porque garante que o bloco de código seja executado pelo menos uma vez antes de testar se a condição (valor diferente de zero) é verdadeira, tornando o código mais enxuto.Espero que possa ter lhe ajudado!