Aula 12 - Começando a programar : repetição

30
Introdução a Algoritmos e Linguagens de Programação Apresentação Luiz Augusto de M. Morais Aula 12 | Começando a programar: repetição

Transcript of Aula 12 - Começando a programar : repetição

Page 1: 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

Page 2: 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

Page 3: Aula 12 - Começando a programar : repetição

Repetição

Analisandoo programa atual

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 4: Aula 12 - Começando a programar : repetição

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')

Page 5: Aula 12 - Começando a programar : repetição

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Analisando o programa atual

Certo. Mas tenho que executar várias vezes?

Page 6: Aula 12 - Começando a programar : repetição

Repetição

Repetindo com Python

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 7: Aula 12 - Começando a programar : repetição

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.

Page 8: Aula 12 - Começando a programar : repetição

Repetição

Usando o interpretador

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 9: Aula 12 - Começando a programar : repetição

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

Page 10: Aula 12 - Começando a programar : repetição

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Usando o Interpretador 2/4

>>> x = 5>>> while x > 0:... print(x)...5555555

Loop infinito!

Page 11: Aula 12 - Começando a programar : repetição

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

Page 12: Aula 12 - Começando a programar : repetição

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

Page 13: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Entendendoo novo problema

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 14: Aula 12 - Começando a programar : repetição

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.

Page 15: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Primeira tentativa

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 16: Aula 12 - Começando a programar : repetição

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!

Page 17: Aula 12 - Começando a programar : repetição

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

Page 18: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Test Drive

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 19: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Tornandoas coisas aleatórias

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 20: Aula 12 - Começando a programar : repetição

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

Page 21: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Usando o interpretador

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 22: Aula 12 - Começando a programar : repetição

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

Page 23: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Segunda tentativa

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 24: Aula 12 - Começando a programar : repetição

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!

Page 25: Aula 12 - Começando a programar : repetição

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

Page 26: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Test Drive

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 27: Aula 12 - Começando a programar : repetição

Jogo de Adivinhação

Perguntas Idiotas

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

Page 28: Aula 12 - Começando a programar : repetição

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?

Page 29: Aula 12 - Começando a programar : repetição

●Estrutura de repetição while●Módulo:

● random●Função:

● random.randint()

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETOHERMES

O que aprendemos hoje?

Page 30: Aula 12 - Começando a programar : repetição

Referências

UNIVERSIDADE ESTADUAL DA PARAÍBA | PROJETO HERMES

BARRY, Paul; GRIFFITHS, David. Head First Programming.Sebastopol: O'Reilly, 2009.