Olá, Lucas. Como vai?
Seu algoritmo no VisuAlg está muito bem estruturado e segue perfeitamente a lógica do pensamento computacional aplicada à resolução de problemas. Você utilizou corretamente uma estrutura de repetição condicional (enquanto) para processar uma quantidade indefinida de dados até que um valor de parada (o número 0) seja inserido.
Notei apenas um detalhe importante: no seu código, a variável total e a variável despesa foram declaradas como inteiro. No contexto de despesas, é muito comum termos valores com centavos. Caso você queira que o programa aceite valores como 10,50 ou 5,75, o ideal seria utilizar o tipo de dado real.
Veja uma sugestão de como o código ficaria com esse ajuste e uma pequena melhoria na interação com o usuário:
algoritmo "Calculadora de Despesas"
var
total: real
despesa: real
inicio
total <- 0
escreval("Digite o valor da despesa (ou 0 para encerrar):")
leia(despesa)
enquanto despesa <> 0 faca
total <- total + despesa
escreval("Digite o próximo valor (ou 0 para encerrar):")
leia(despesa)
fimEnquanto
escreva("Valor Total das suas Despesas: R$ ", total:2:2)
fimalgoritmo
- A mudança para real permite trabalhar com casas decimais.
- O uso do escreval antes do leia ajuda o usuário a entender o que o programa está esperando.
- No final, utilizei a formatação total:2:2 para que o VisuAlg exiba o resultado com duas casas decimais, simulando o formato de moeda.
Parabéns por concluir o desafio e aplicar os fundamentos de lógica de programação!
Espero que possa ter lhe ajudado!