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