Usando o VisuAlg, transforme o algoritmo em Pseudocódigo escrito na Questão 2 para Portugol.
7. Usando o VisuAlg, elabore em Portugol um algoritmo para gerar uma sequência de números, definida por um número inicial e um número final, informados pelo usuário durante a execução.
Exemplo: caso as entradas forem 4 e 9, o resultado do algoritmo seria: 456789
a. Construa este algoritmo utilizando a estrutura ENQUANTO… FAÇA.
b. Construa este algoritmo utilizando a estrutura FAÇA… ENQUANTO.
c. Construa este algoritmo utilizando a estrutura REPITA… ATÉ.
d. Construa este algoritmo utilizando a estrutura PARA.

Passo 1

O enunciado pede um algoritmo em Portugol (VisuAlg) que, dado um valor inicial e um valor final fornecidos pelo usuário, gere e mostre a sequência de todos os números entre esses limites (inclusive). Vamos elaborar quatro versões, cada uma usando uma das estruturas de repetição:
  • ENQUANTO…FAÇA
  • FAÇA…ENQUANTO
  • REPITA…ATÉ
  • PARA

Passo 2

Construímos primeiro a versão com ENQUANTO…FAÇA, que testa a condição antes de entrar no laço:
algoritmo "SequenciaEnquanto"
var
   inicio, fim, atual: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   atual <- inicio
   enquanto atual <\(=\) fim faca
      escreva(atual)
      atual <- atual \(+1\)
   fimEnquanto
   escreval() // quebra de linha ao final
fimalgoritmo

Passo 3

Agora a versão com FAÇA…ENQUANTO, que executa pelo menos uma vez antes de testar:
algoritmo "SequenciaFacaEnquanto"
var
   inicio, fim, atual: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   atual <- inicio
   faca
      escreva(atual)
      atual <- atual \(+1\)
   enquanto atual <\(=\) fim
   escreval()
fimalgoritmo

Passo 4

Na forma REPITA…ATÉ, o teste vem no final e garante execução mínima de um ciclo:
algoritmo "SequenciaRepitaAte"
var
   inicio, fim, atual: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   atual <- inicio
   repita
      escreva(atual)
      atual <- atual \(+1\)
   ate atual > fim
   escreval()
fimalgoritmo

Passo 5

Por fim, usando PARA, que é ideal quando sabemos o início, o fim e o passo:
algoritmo "SequenciaPara"
var
   inicio, fim, i: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   para i de inicio ate fim passo \(1\) faca
      escreva(i)
   fimPara
   escreval()
fimalgoritmo

Resposta

– Versão ENQUANTO…FAÇA
algoritmo "SequenciaEnquanto"
var
   inicio, fim, atual: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   atual <- inicio
   enquanto atual <\(=\) fim faca
      escreva(atual)
      atual <- atual \(+1\)
   fimEnquanto
   escreval()
fimalgoritmo
– Versão FAÇA…ENQUANTO
algoritmo "SequenciaFacaEnquanto"
var
   inicio, fim, atual: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   atual <- inicio
   faca
      escreva(atual)
      atual <- atual \(+1\)
   enquanto atual <\(=\) fim
   escreval()
fimalgoritmo
– Versão REPITA…ATÉ
algoritmo "SequenciaRepitaAte"
var
   inicio, fim, atual: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   atual <- inicio
   repita
      escreva(atual)
      atual <- atual \(+1\)
   ate atual > fim
   escreval()
fimalgoritmo
– Versão PARA
algoritmo "SequenciaPara"
var
   inicio, fim, i: inteiro
inicio
   escreva("Digite o valor inicial: ")
   leia(inicio)
   escreva("Digite o valor final: ")
   leia(fim)
   para i de inicio ate fim passo \(1\) faca
      escreva(i)
   fimPara
   escreval()
fimalgoritmo

Exercícios relacionados