Portugol, Visualg, Laço FOR

Estava criando uma logica em que a pessoa digita o numero que ela que contar. De quanto em quanto ela quer contar e em que numero começa a contagem. Queria diferenciar o tipo de contagem, regressivo ou progressivo, só que quando tento fazer a contagem regressiva o programa não executa o código e pula direto para Escreval (“terminei a contagem!”).

Segue abaixo o código.

=======================================================
// Seção de Declarações 
var
   contador, valor, salto, inicial, regressor : inteiro

inicio
// Seção de Comandos
Escreva ("Quer contar até quanto? ")
Leia (valor)
Escreva ("Quer contar de quanto em quanto? ")
Leia (salto)
Escreva ("Em que numero você quer que comece? ")
Leia (inicial)
   
   contador <- inicial
   se (valor > inicial ) entao
   enquanto (contador <= valor) faca
            EscrevaL(contador)
            contador <- contador + salto
   fimenquanto
   senao
        Se ( valor < inicial)entao
        enquanto (contador <= valor) faca
            EscrevaL(contador)
            contador <- contador - salto

   fimenquanto
   fimse
   fimse
   
   Escreval ("terminei a contagem!")
   
fimalgoritmo

==========================================

Se alguém puder ajudar, agradeço!

Boa noite. Olha tenta alterar aquele " enquanto(contador <= valor)" do " senao ", porque essa condição só funciona no primeiro " Se ", uma vez que a variável contadora receberia o valor inicial, e este seria menor que a variável “valor”, que voce criou. No caso, eu acho que o certo seria "enquanto(contador>=valor).

1 curtida

Muito obrigado cara. Corrigi para >= e funcionou. Valeu!