Portugol, Visualg, Laço FOR

2 respostas Resolvido
Klaes

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!

2 Respostas

Gleal
Solucao aceita

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).

Klaes

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

Criado 10 de julho de 2017
Ultima resposta 11 de jul. de 2017
Respostas 2
Participantes 2