Buscar

Aula11_Estruturas de controle_enquanto_for

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e de Tecnologias
Curso de Bacharelado em Sistemas de Informação
Algoritmos
Estruturas de controle: repetição com comando enquanto_for
Profª Janne Oeiras Lachi
1
Plano de aula
` Estrutura de repetição em algoritmos:
` Estrutura de repetição para número indefinido de repetições.
` enquanto...fim_enquanto
` continua...enquanto_for
Comando continua ... enquanto_for
` Estrutura com teste no final
` Baseia-se na análise de uma condição, ou seja, a repetição será
feita enquanto a condição for verdadeira.
` Quando o teste condicional resultar em valor falso, os 
comandos dentro do bloco de repetição não serão executados.
Comando continua ... enquanto_for
` Em Português estruturado usa os comandos:
continua e enquanto_for
` Sintaxe do comando:
continua
comando 1
comando 2
...
comando n
enquanto_for (<condição>) Teste no final porque está
DEPOIS dos comandos a 
serem executados.
Diferença entre os comandos
` enquanto...fim_enquanto x continua...enquanto_for
` continua...enquanto_for: 
` os comandos são repetidos pelo menos uma vez, já que a 
condição de parada se encontra no final. 
` SEMPRE vai entrar no laço de repetição e executar os 
comandos pelo menos 1 vez, pois não há uma condição prévia 
que impeça a entrada no bloco do enquanto.
` Estimativas afirmam que é usado em 5% dos laços.
continua
comando 1
comando 2
...
comando n
enquanto_for (<condição>)
Exemplo 1
` Elaborar um algoritmo que receba um valor numérico inteiro 
qualquer. Em seguida calcule o valor de entrada, multiplicando-
o por 3 e apresente o resultado dessa operação. Após 
mostrar o resultado, o algoritmo deve perguntar se o usuário 
deseja um novo cálculo. 
programa mult_3
var
num: inteiro
resp: caractere
início
fim
Corpo mínimo do algoritmo
Declaração da variável num para receber a entrada
Declaração da variável resp para receber a resposta do usuário
Exemplo 1: passo-a-passo
` Elaborar um algoritmo que receba um valor numérico inteiro qualquer. Em seguida 
calcule o valor de entrada, multiplicando-o por 3 e apresente o resultado dessa 
operação. Após mostrar o resultado, o algoritmo deve perguntar se o usuário 
deseja um novo cálculo. 
programa mult_3
var
num: inteiro
resp: caractere
início
escreva “Informe um número inteiro:”
leia num
fim
Vamos pedir e receber o dado de entrada
Exemplo 1: passo-a-passo
` Elaborar um algoritmo que receba um valor numérico inteiro qualquer. Em seguida 
calcule o valor de entrada, multiplicando-o por 3 e apresente o resultado dessa 
operação. Após mostrar o resultado, o algoritmo deve perguntar se o usuário 
deseja um novo cálculo. 
programa mult_3
var
num: inteiro
resp: caractere
início
escreva “Informe um número inteiro:”
leia num
escreva num * 3
fim
Vamos efetuar o cálculo solicitado no problema e ao 
mesmo tempo apresentar esse resultado
Exemplo 1: passo-a-passo
` Elaborar um algoritmo que receba um valor numérico inteiro qualquer. Em seguida 
calcule o valor de entrada, multiplicando-o por 3 e apresente o resultado dessa 
operação. Após mostrar o resultado, o algoritmo deve perguntar se o usuário 
deseja um novo cálculo. 
programa mult_3
var
num: inteiro
resp: caractere
início
escreva “Informe um número inteiro:”
leia num
escreva num * 3
escreva “Deseja continuar calculando (S ou N)?”
leia resp
fim
Vamos perguntar se o usuário deseja continuar
Exemplo 1: inserindo a repetição
` Elaborar um algoritmo que receba um valor numérico inteiro qualquer. Em seguida 
calcule o valor de entrada, multiplicando-o por 3 e apresente o resultado dessa 
operação. Após mostrar o resultado, o algoritmo deve perguntar se o usuário 
deseja um novo cálculo. 
programa mult_3
var
num: inteiro
resp: caractere
início
continua
escreva “Informe um número inteiro:”
leia num
escreva num * 3
escreva “Deseja continuar calculando (S ou N)?”
leia resp
enquanto_for (resp = “S” .ou. resp = “s”)
fim
Veja que incluímos o comando continua... enquanto_for
Exemplo 1: inserindo a repetição
` Elaborar um algoritmo que receba um valor numérico inteiro qualquer. Em seguida 
calcule o valor de entrada, multiplicando-o por 3 e apresente o resultado dessa 
operação. Após mostrar o resultado, o algoritmo deve perguntar se o usuário 
deseja um novo cálculo. 
programa mult_3
var
num: inteiro
resp: caractere
início
continua
escreva “Informe um número inteiro:”
leia num
escreva num * 3
escreva “Deseja continuar calculando (S ou N)?”
leia resp
enquanto_for (resp = “S” .ou. resp = “s”)
fim
Note a indentação dos comandos dentro do bloco do comando continua... enquanto_for
Exemplo 1: execução da repetição com o 
comando enquanto_for
continua
escreva “Informe um número inteiro:”
leia num
escreva num * 3
escreva “Deseja continuar calculando (S ou N)?”
leia resp
enquanto_for (resp = “S” .ou. resp = “s”)
Simulação:
num saída condição
-12
3
18
-15
.v.
.v.
.v.
.f.
resp
-4 S
1 S
6 S
-5 N
O algoritmo vai parar quando resp receber um valor diferente de S, 
pois a condição se torna falsa.
Exemplo 1: com enquanto
programa MULT_user
var
N, R : inteiro
RESP : caractere
início
RESP Å “S”
enquanto (RESP = “S” .ou. RESP = “s”) faça
escreva “Informe um número inteiro:”
leia N
R Å N * 3
escreva R
escreva “Deseja continuar (S ou N)?”
leia RESP
fim_enquanto
fim Neste problema, é melhor a solução anterior com o enquanto_for porque não precisamos 
inicializar a variável controladora do laço
` Elaborar um algoritmo que receba um valor numérico inteiro qualquer. Em seguida calcule o 
valor de entrada, multiplicando-o por 3 e apresente o resultado dessa operação. Após 
mostrar o resultado, o algoritmo deve perguntar se o usuário deseja um novo cálculo. 
Exemplo 2: resolução com enquanto
` Escreva um algoritmo que leia dois números inteiros. Enquanto o primeiro número for 
menor que o segundo, incremente o primeiro com 2 unidades e o segundo número com 1
unidade. Ao término do algoritmo, imprima os novos valores dos números.
programa novo_valor
var
x, y: inteiro
início
escreva “Informe dois numeros inteiros: ”
leia x, y
enquanto (x < y) faça
x Å x +2
y Å y + 1
fim_enquanto
escreva “O novo valor de x eh: ”, x 
escreva “O novo valor de y eh: ”, y
fim
Vimos anteriormente que este problema não é adequado 
para se resolver com o comando para.
Exemplo 2
` Escreva um algoritmo que leia dois números inteiros. Enquanto o primeiro número for 
menor que o segundo, incremente o primeiro com 2 unidades e o segundo número com 1
unidade. Ao término do algoritmo, imprima os novos valores dos números.
programa novo_valor
var
x, y: inteiro
início
escreva “Informe dois números inteiros: ”
leia x, y
continua
x Å x + 2
y Å y + 1
enquanto_for (x < y)
escreva “O novo valor de x eh: ”, x 
escreva “O novo valor de y eh: ”, y
fim
Para usar o comando continua...enquanto_for precisamos ter cuidado.
Devemos testar se x < y para não alterar os valores se não for necessário.
Exemplo 2
` Escreva um algoritmo que leia dois números inteiros. Enquanto o primeiro número for 
menor que o segundo, incremente o primeiro com 2 unidades e o segundo número com 1
unidade. Ao término do algoritmo, imprima os novos valores dos números.
programa novo_valor
var
x, y: inteiro
início
escreva “Informe dois numeros inteiros: ”
leia x, y
se ( x < y) então
continua
x Å x + 2
y Å y + 1
enquanto_for (x < y)
fim_se
escreva “O novo valor de x eh: ”, x 
escreva “O novo valor de y eh: ”, y
fim
Neste problema, é melhor usar o comando enquanto porque 
economizamos esse teste com o comando SE.
Exemplo 3: com continua...enquanto_for` Faça um algoritmo que receba números e imprima o dobro de cada 
número. A execução do algoritmo termina quando o usuário entrar 
com o número 0 (zero).
programa DOBRO
var 
num : realiníciocontinua
escreva “Entre com um número ou 0 para terminar: ”leia num
escreva num*2enquanto_for (num <> 0)fim
Temos aqui o problema de imprimir o dobro de 0 
antes de sair...
Exemplo 3: com continua...enquanto_for
` Faça um algoritmo que receba números e imprima o dobro de cada 
número. A execução do algoritmo termina quando o usuário entrar 
com o número 0 (zero).
programa DOBRO
var 
num : realiníciocontinua
escreva “Entre com um número ou 0 para terminar: ”leia numse (num <> 0) então
escreva num*2fim-seenquanto_for (num <> 0)fim
Colocamos uma condição que neste caso onera 
o algoritmo porque tem que ser testada a cada 
valor inserido...
Conclusão: melhor usar o enquanto
Exemplo 3: com enquanto
` Faça um algoritmo que receba números e imprima o dobro de cada 
número. A execução do algoritmo termina quando o usuário entrar 
com o número 0 (zero).
programa DOBRO
var 
num : realinícioescreva “Entre com um número ou 0 para terminar: ”leia numenquanto (num <> 0) façaescreva num*2escreva “Entre com um número ou 0 para terminar: ”leia numfim_enquantofim
Colocamos a pergunta fora do laço e depois 
repetimos dentro dele (no final)
Exemplo 4
` Faça um algoritmo para calcular a área de um triângulo, que 
não permita a entrada de dados inválidos, ou seja, medidas 
menores ou iguais a 0. Dica: área = (base x altura) / 2. Use o 
comando continua...enquanto_for
Exemplo 4: passo-a-passo
` Faça um algoritmo para calcular a área de um triângulo, que 
não permita a entrada de dados inválidos, ou seja, medidas 
menores ou iguais a 0. Dica: área = (base x altura) / 2
programa AREA_TRIANGULO
var 
area, base, altura: realinício
fim
Corpo mínimo do algoritmo e declaração de variáveis:
• area vai armazenar a area calculada;
• base vai armazenar a base que o usuário informar;
• altura vai armazenar a altura que o usuário informar.
Exemplo 4: passo-a-passo
` Faça um algoritmo para calcular a área de um triângulo, que não permita a entrada 
de dados inválidos, ou seja, medidas menores ou iguais a 0. Dica: área = (base x 
altura) / 2
programa AREA_TRIANGULO
var 
area, base, altura: realinício
escreva “Entre com a base do triângulo (valor maior que 0): ”leia base
escreva “Entre com a altura do triângulo (valor maior que 0): ”leia alturafim
Vamos ler e armazenar os dados de entrada
Note que NÃO podemos receber dados inválidos
Exemplo 4: passo-a-passo
` Faça um algoritmo para calcular a área de um triângulo, que não permita a entrada 
de dados inválidos, ou seja, medidas menores ou iguais a 0. Dica: área = (base x 
altura) / 2
programa AREA_TRIANGULO
var 
area, base, altura: realiníciocontinua
escreva “Entre com a base do triângulo (valor maior que 0): ”leia baseenquanto_for (base <= 0)
continua
escreva “Entre com a altura do triângulo (valor maior que 0): ”leia alturaenquanto_for (altura <= 0)
fim
Incluímos aqui o comando continua...enquanto_for para 
“continuar” a solicitação de entrada enquanto o usuário não 
fornecer dados válidos
Exemplo 4: resolução
` Faça um algoritmo para calcular a área de um triângulo, que não permita a entrada 
de dados inválidos, ou seja, medidas menores ou iguais a 0. Dica: área = (base x 
altura) / 2
programa AREA_TRIANGULO
var 
area, base, altura: realiníciocontinua
escreva “Entre com a base do triângulo (valor maior que 0): ”leia baseenquanto_for (base <= 0)
continua
escreva “Entre com a altura do triângulo (valor maior que 0): ”leia alturaenquanto_for (altura <= 0)
area Å (base * altura) / 2
escreva “Medida da área é:”, area
fim
Por fim fazemos o cálculo e mostramos na tela
Exemplo 5
` Elaborar um algoritmo que calcule e imprima o valor de bn. O 
valor de n deverá ser maior do que 1 e inteiro e o valor de b 
maior ou igual a 2 e inteiro. Dica: modifique o algoritmo 
abaixo.
programa AREA_TRIANGULO
var 
area, base, altura: realiníciocontinua
escreva “Entre com a base do triângulo: ”leia baseenquanto_for (base <= 0)
continua
escreva “Entre com a altura do triângulo: ”leia alturaenquanto_for (altura <= 0)
area Å (base * altura) / 2
escreva “Medida da área é:”, area
fim
Exemplo 5: resolução
` Elaborar um algoritmo que calcule e imprima o valor de bn. O valor de n 
deverá ser maior do que 1 e inteiro e o valor de b maior ou igual a 2 e 
inteiro .
programa B_N
var 
res, b, n: inteiroiníciocontinua
escreva “Entre com um valor inteiro de b >= 2: ”leia benquanto_for (b < 2)
continua
escreva “Entre com um valor inteiro de n > 1: ”leia nenquanto_for (n <= 1)
res Å b ↑ n
escreva “O valor final é:”, res
fim
Referências
` Algoritmos – Fundamento e Prática. Everton Coimbra de 
Araújo. Florianópolis: Visual Book, 2007.
` Algoritmos - Lógica para desenvolvimento de programação de 
computadores. José Augusto N. G. Manzano, Jayr Figueiredo 
de Oliveira. São Paulo: Érica, 2006.
27
	Algoritmos
	Plano de aula
	Comando continua ... enquanto_for
	Exemplo 1
	Exemplo 1: passo-a-passo
	Exemplo 1: passo-a-passo
	Exemplo 1: passo-a-passo
	Exemplo 1: inserindo a repetição
	Exemplo 1: inserindo a repetição
	Exemplo 1: execução da repetição com o comando enquanto_for
	Exemplo 1: com enquanto
	Exemplo 2: resolução com enquanto
	Exemplo 2
	Exemplo 2
	Exemplo 3: com continua...enquanto_for
	Exemplo 3: com continua...enquanto_for
	Exemplo 3: com enquanto
	Exemplo 4
	Exemplo 4: passo-a-passo
	Exemplo 4: passo-a-passo
	Exemplo 4: passo-a-passo
	Exemplo 4: resolução
	Exemplo 5
	Exemplo 5: resolução
	Referências

Outros materiais