Aula 12 - Começando a programar : repetição
-
Upload
luiz-augusto-macedo-morais -
Category
Education
-
view
1.665 -
download
0
Transcript of Aula 12 - Começando a programar : repetição
Introdução a Algoritmos e
Linguagens de Programação
ApresentaçãoLuiz Augusto de M. Morais
Aula 12 | Começando a programar: repetição
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Roteiro
●Analisando o programa atual●Repetindo com Python●Usando o interpretador
Repetição
●Entendendo o novo problema●Primeira tentativa●Tornando as coisas aleatórias●Segunda tentativa●Perguntas idiotas
Jogo de Adivinhação
Repetição
Analisandoo programa atual
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Analisando o programa atual
print('Bem-vindo!')
palpite = input('Chute um número: ')
palpite = int(palpite)
if palpite == 5:
print('Você ganhou!')
else:
if palpite > 5:
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Analisando o programa atual
Certo. Mas tenho que executar várias vezes?
Repetição
Repetindo com Python
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Repetindo com Python
resposta = 'não'
while resposta != 'sim':
print('Ok, vamos continuar.')
resposta = input('Pede pra sair! ')
Coloque um valor padrão para o teste passar
Não esqueça da endentação
O valor da variável de teste tem que mudar para sair do loop.
Repetição
Usando o interpretador
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Usando o Interpretador 1/4
>>> resposta = 'não'>>> while resposta != 'sim':... print('Ok, vamos continuar')... resposta = input('Pede pra sair! ')...Ok, vamos continuarPede pra sair! nãoOk, vamos continuarPede pra sair! nãoOk, vamos continuarPede pra sair! sim
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Usando o Interpretador 2/4
>>> x = 5>>> while x > 0:... print(x)...5555555
Loop infinito!
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Usando o Interpretador 3/4
>>> x = 5>>> while x > 0:... print(x)... x -= 1...54321
Com esse decrementadoro loop vai parar
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Usando o Interpretador 4/4
>>> x = 0>>> while x < 10:... if x % 2 == 0:... print(x)... x += 1...02468
Jogo de Adivinhação
Entendendoo novo problema
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Entendendo o novo problema
Já temos um jogo onde você pode dar palpites e o programa informa se o palpite é maior ou menor que o número correto.
O problema é: só temos uma chance!
Temos que achar uma forma deste código ser repetido várias vezes, até o usuário acertar o palpite.
Jogo de Adivinhação
Primeira tentativa
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Primeira tentativa
print('Bem-vindo!')
palpite = input('Chute um número: ')
palpite = int(palpite)
if palpite == 5:
print('Você ganhou!')
else:
if palpite > 5:
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
●Qual a parte do código tem que repetir?
●Qual será a variável de teste para o loop?
●Não esqueça de definir um valor padrão para a variável de teste fora do loop.
5 minutos!
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Primeira tentativa
print('Bem-vindo!')
palpite = 0
while palpite != 5:
palpite = input('Chute um número: ')
palpite = int(palpite)
if palpite == 5:
print('Você ganhou!')
else:
if palpite > 5:
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
Variável de teste com valor padrão
Onde a variável de teste muda seu valor
Jogo de Adivinhação
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Jogo de Adivinhação
Tornandoas coisas aleatórias
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Tornando as coisas aleatórias
import random
numero_aleatorio = random.randint(1, 10)
print(numero_aleatorio)
Módulo que possui funções para gerar números aleatórios
Qualquer número inteiro entre 1 e 10
Jogo de Adivinhação
Usando o interpretador
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Usando o Interpretador
>>> import random>>> random.randint(1,3)2>>> random.randint(1,3)1>>> random.randint(1,3)1>>> random.randint(1,3)3>>> random.randint(1,3)2
Jogo de Adivinhação
Segunda tentativa
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Segunda tentativa
print('Bem-vindo!')
palpite = 0
while palpite != 5:
palpite = input('Chute um número: ')
palpite = int(palpite)
if palpite == 5:
print('Você ganhou!')
else:
if palpite > 5:
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
●Importe o módulo que possui funções que produzem números aleatórios
●Crie uma variável e armazene nela um valor inteiro aleatório
●Troque o valor que está fixo pela nova variável aleatória
3 minutos!
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Segunda tentativa
import random
print('Bem-vindo!')
palpite = 0
segredo = random.randint(1, 10)
while palpite != segredo:
palpite = input('Chute um número: ')
palpite = int(palpite)
if palpite == segredo:
print('Você ganhou!')
else:
if palpite > segredo:
print('Muito alto.')
else:
print('Muito baixo.')
print('Fim do jogo')
Módulo que possui funções para gerar números aleatórios
Guardando na variável segredo um número inteiro aleatório entre 1 e 10
Substituído número 5 pela variável segredo
Jogo de Adivinhação
Test Drive
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Jogo de Adivinhação
Perguntas Idiotas
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
Perguntas Idiotas
●Por que tem umas palavras coloridas no código?●Só existe um tipo de estrutura de repetição em Python?●O que significa while?●Quando é que a execução de um programa sai do bloco while?●O que é um loop infinito, mesmo?●O que é aquele import random?●Eu posso importar outros módulos?●O random possui outras funções?
●Estrutura de repetição while●Módulo:
● random●Função:
● random.randint()
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES
O que aprendemos hoje?
Referências
UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES
BARRY, Paul; GRIFFITHS, David. Head First Programming.Sebastopol: O'Reilly, 2009.