Oii, Fabrício!
Quando precisamos somar vários itens, usamos uma técnica chamada variável acumuladora.
Para resolver o que você pontuou, imagine que a sua variável var_precototal é como uma sacola de compras que começa vazia (com valor 0) e, a cada volta do laço, você coloca o preço do novo produto dentro dela.
- Pra salvar o valor e somar ao próximo, você deve usar a estrutura
var_precototal = var_precototal + (var_qitem * var_precoitem). Isso garante que o valor antigo não seja apagado, mas sim somado ao novo. - Para o
enquanto não ser infinito, você precisa de um contador. Se o usuário disse que são 3 itens, a cada repetição você subtrai 1 desse valor (var_nitens = var_nitens - 1). Quando chegar a 0, o programa entende que acabou e sai do laço. - Ordem das ações: As perguntas sobre o item e o cálculo da soma precisam estar obrigatoriamente entre o "inicio" e o "fim" do seu bloco de repetição.
A lógica poderia ficar organizada no seu pseudocódigo assim:
// inicio
var_precototal = 0
exibir "Digite a quantidade de itens:"
ler var_nitens
enquanto var_nitens > 0 repetir
exibir "Digite o preço do item:"
ler var_precoitem
exibir "Digite a quantidade do produto:"
ler var_qitem
// Aqui você acumula o valor na variável total
var_precototal = var_precototal + (var_precoitem * var_qitem)
// Aqui você diminui o contador para o loop ter um fim
var_nitens = var_nitens - 1
fim_enquanto
exibir "Possui cadastro? (S/N)"
ler var_cad
se var_cad = "S" então
var_precototal = var_precototal * 0.90 // Aplica 10% de desconto no total
fim_se
exibir "O valor total é de: " + var_precototal
Essa organização garante que o cálculo do desconto aconteça apenas uma vez, depois que o programa já sabe o valor de todos os produtos somados.
Continue praticando, pois entender como os dados fluem dentro de um looping é um grande passo na lógica de programação.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!