Buscar

Estrutura de Repetição While

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

Estrutura de Repetição 
While
Estrutura de Repetição While
Comando while
Estrutura recomendada quando o número de repetições for 
desconhecido, sendo necessário um teste (condição) para 
interromper a repetição.
Sintaxe:
while CONDIÇÃO:
comando A
comando B
...
#Fim while 
Fluxo de execução:
1) Avalia a condição, resultando True 
ou False
2) Se resultar False, sai do laço
3) Se resultar True executa todos os 
comandos e retorna ao inicio
Comando while
Alguma variável da CONDIÇÃO deverá ter seu valor alterado 
através de um comando de leitura ou de atribuição, antes da 
estrutura de repetição e dentro da estrutura (na maioria das 
vezes como último comando do laço).
# Programa Exemplo
teste = 'Sim'
while teste == 'Sim':
print('Laço executado‘)
teste = input('Deseja repetir (Sim/Nao)?: ‘)
print()
#fim while
#Fim Exemplo Boa prática de programação!
Procure comentar o código para 
indicar o término de um laço. 
Não é obrigatório mas previne 
erros de identação. 
Comando while
Exemplos errados
#Exemplo errado 1
while num > 0:
num = int(input('NUM: '))
print('Dobro de', num, '=', 2*num)
#fim while
Comando while
Exemplos errados
#Exemplo errado 1
while num > 0: #ERRO: faltou inicializar “num” antes do laço.
num = int(input('NUM: '))
print('Dobro de', num, '=', 2*num)
#fim while
Comando while
#Exemplo errado2
valor = 0
while valor <= 0:
quadrado = valor**2
print('O quadrado de', valor, '=', quadrado)
#fim while
Comando while
#Exemplo errado2
valor = 0
while valor <= 0:
quadrado = valor**2
print('O quadrado de', valor, '=', quadrado)
#ERRO: faltou atualizar “valor” dentro do laço.
#fim while
Este código esta em 
loop infinito, ou seja, 
a condição sempre 
será True.
Comando while
Exemplo: Substitua um for por while
#Exemplo for
for k in range(10):
print(k)
#fim for
Comando while
Exemplo: Substitua um for por while
#Exemplo for
for K in range(10):
print K
#fim for
#Equivalente while
k = 0
while k < 10:
print(k)
k = k + 1
#fim while
Comando while - Exercícios
1) Ler vários números inteiros e informar o triplo de cada um. O 
algoritmo acaba quando entra Enter.
Comando while - Exercícios
1) Ler vários números inteiros e informar o triplo de cada um. O 
algoritmo acaba quando entra Enter.
# Lê números e informa o triplo de cada um
num = input('num: ')
while num != '':
num = int(num)
triplo = 3*num
print('O triplo de', num, '=', triplo)
num = input('\nnum: ')
#fim while
Comando while - Exercícios
2) Entrar com vários números enquanto forem positivos. 
Informar quantos números foram digitados e a média deles.
Comando while – Exercício 2
# Retorna a quantidade de números digitados e a média deles
num = eval(input('NUM: '))
cont = soma = 0
while num > 0:
cont += 1
soma += num
num = eval(input('\nNUM: '))
#Fim while
media = soma/cont
print('\nForam digitados', cont, 'números.')
print('A média dos números = %0.1f' %media)
Comando while – Exercício 2
# Retorna a quantidade de números digitados e a média deles
num = eval(input('NUM: '))
cont = soma = 0
while num > 0:
cont += 1
soma += num
num = eval(input('\nNUM: '))
#Fim while
if cont > 0:
media = soma/cont
print('\nForam digitados', cont, 'números.')
print('A média dos números = %0.1f' %media)
Comando while - Exercícios
3) Faça um algoritmo para calcular a área de um triângulo 
retângulo. Esse programa não pode permitir a entrada de 
dados inválidos, ou seja, medidas menores ou iguais a 0. 
Comando while – Exercício 3
# Cálculo da área de um triângulo retângulo
base = 0
while base <= 0:
base = eval(input('Base: '))
#fim while base
alt = 0
while alt <= 0:
alt = eval(input('Altura: '))
#fim while alt
area = base * alt / 2
print('Área = ', area)
Comando while - Exercícios
4) Dados vários números inteiros positivos com três algarismos, 
informar se o algarismo da casa das centenas é PAR ou 
ÍMPAR. Interromper o laço se o número tiver menos ou mais 
de três algarismos.
Comando while – Exercício 4
# Retornar se algarismo da casa das centenas é PAR ou ÍMPAR
num = eval(input('NUM = '))
while 99 < num < 1000:
cent = num//100
if cent%2 == 0:
print('Número', cent, 'PAR.‘)
else:
print('Número', cent, 'IMPAR.‘)
num = eval(input('NUM = '))
#fim while
Comando while - Exercícios
5) Ler vários números inteiros e informar quantos entre 100 e 
200 foram digitados. Quando o valor 0 (zero) for lido, o 
algoritmo deverá cessar sua execução.
Comando while – Exercício 5
# Informa quantos números entre 100 e 200 foram digitados
num = int(input('NUM = '))
cont = 0
while num != 0:
if 100 < num < 200:
cont += 1
num = int(input('NUM = '))
#fim while
print('Foram digitados', cont, 'nºs entre 100 e 200.‘)
Comando while - Exercícios
6) Faça um algoritmo que leia uma quantidade indeterminada de
números inteiros positivos e conte quantos deles estão nos
seguintes intervalos: [0-25], [26-50], [51-75] e [76-100]. A
entrada de dados deverá terminar quando for lido um número
negativo.
Comando while – Exercício 6
# Informa a quantidade de número nos intervalos
num = int(input('NUM = '))
cont1 = cont2 = cont3 = cont4 = 0
while num >= 0:
if num <= 25:
cont1 += 1
elif num <= 50:
cont2 += 1
elif num <= 75:
cont3 += 1
elif num <=100:
cont4 += 1
num = int(input('NUM = '))
#fim while
print('Quant. de nºs no intervalo [0-25] = ', cont1)
print('Quant. de nºs no intervalo [25-50] = ', cont2)
print('Quant. de nºs no intervalo [50-75] = ', cont3)
print('Quant. de nºs no intervalo [75-100] = ', cont4)
Exemplo de teste no final
palavra = 'UEM'
print(palavra)
tamanho = len(palavra)
i = tamanho - 1
while True:
print(palavra[i])
i -= 1
#outros comandos
if i < 0: #teste no final
break
#fim while
Exemplo de teste no final
Suponha que você queira, por algum motivo
estranho, somar os números naturais (1,
2, 3 etc.) até obter um total maior ou igual
a 100.
Como seria o laço de repetição em pascal,
java e python?
Laço em Pascal
repeat
n := n + 1; 
total := total + n; 
until (total >= 100);
Laço em Java
do { 
n = n + 1; 
total = total + n; 
} while (total < 100);
Laço em Python
while True:
n += 1
total += n
if total >= 100: break
Teste no final em Python
Generalizando, qualquer loop com teste no
final pode ser codificado em Python usando-
se uma combinação de while e if ... break,
assim:
while True: 
comando1 
comando2 
# etc. 
if condicao_final: break
#fim while
Exercicios
1) Faça um algoritmo que leia vários grupos
de quatro valores (a,b,c,d) e mostre-os na
ordem lida, em ordem crescente e
decrescente.
Exercicio 1
while True:
a = eval(input('a= '))
b = eval(input('b= '))
c = eval(input('c= '))
d = eval(input('d= '))
print('Ordem inicial: ', a,b,c,d)
while 1:
if a > b: a,b = b,a
if b > c: b,c = c,b
if c > d: c,d = d,c
if a < b < c < d: break
#fim while
print('Crescente: ', a,b,c,d)
print('Decrescente: ', d,c,b,a)
if input('\nDigite R para repetir: ').upper() != "R":
break
#fim while
Exercício 2
Faça um algoritmo que leia um número
indeterminado de valores para M, todos
inteiros e positivos, um de cada vez. Se M
for par, verifique quantos divisores possui.
Se M for ímpar, calcule a soma dos
números inteiros de 1 até M (M não deve
entrar nos cálculos). Mostre os resultados
doscálculos realizados. Finalize a entrada
de dados com M = 0 ou negativo.
Exercício 2
while 1:
M = int(input('M: '))
if M <= 0: break
if M%2 == 0:
DIV = 2
for K in range(1, M//2):
if M%K == 0: DIV = DIV + 1
print('Divisores = ', DIV)
else:
SOMA = 0
for K in range(M):
SOMA = SOMA + K
print('Soma = ', SOMA)
#fim while
Exercicio 3
Faça um algoritmo que apresente um menu
de opções para o cálculo das seguintes
operações entre dois números: adição,
subtração, multiplicação e divisão. O
programa deve possibilitar ao usuário a
escolha da operação desejada, a exibição
do resultado e a volta ao menu de opções.
O programa só termina quando for
escolhida a opção de saída.
Comando while - Exercícios
Dentro de laços é possível usar dois comandos adicionais para 
ajudar no controle dos mesmos. Os comandos são: 
break: este comando interrompe a execução do laço.
continue: este comando vai para a próxima iteração do laço 
imediatamente. 
Exercício 4
O cardápio de uma lanchonete é o seguinte:
Especificação Código Preço
Cachorro quente 100 R$ 3,50
Bauru simples 101 R$ 4,30
Bauru com ovo 102 R$ 5,00
Hambúrguer 103 R$ 4,00
Cheeseburguer 104 R$ 5,00
Refrigerante 105 R$ 3,50
Faça um algoritmo que leia o código dos itens pedidos e as 
quantidades desejadas. Calcule e mostre o valor a ser pago 
por item (preço * quantidade) e o total geral do pedido. 
Considere que o cliente deve informar quando o pedido 
deve ser encerrado.
# Cardápio de uma lanchonete
valor = total = 0
while True:
codigo = input('Informe o codigo: ')
if codigo == '100':
valor = 3.50; esp = 'Cachorro quente'
elif codigo == '101':
valor = 4.30; esp = 'Bauru simples'
elif codigo == '102':
valor = 5.00; esp = 'Bauru com ovo'
elif codigo == '103':
valor = 4.00; esp = 'Hamburguer'
elif codigo == '104':
valor = 5.00; esp = 'Cheeseburger'
elif codigo == '105':
valor = 3.50; esp = 'Refrigerante'
else:
print('Informe um produto valido'); continue
qtde = int(input('Informe a quantidade: '))
print('\tQtde: ' , qtde, ' \t\tProduto: ', esp)
print('\tUnidade = %5.2f \tTotal = %5.2f' %( valor, valor * qtde))
total += valor * qtde
if(input('\nDeseja continuar? (S/N): ').upper() == 'N'):
break
#fim while
print('\nTotal do pedido = %5.2f' %total)
Exercício 4

Continue navegando