Você está na página 1de 82

Algoritmos e Programação

Aula 05 – Estruturas Condicionais Encadeadas

2022/1

Atualizado em 30/06/2022
Conteúdo

Como montar uma condição?

Estruturas Condicionais Encadeadas

Exemplos extras
Conteúdo

Como montar uma condição?

Estruturas Condicionais Encadeadas

Exemplos extras
Tipos de operadores

Operandos Resultado
. Tipo
(entradas) (saída)

Aritmético numérico numérico

Operadores Relacional numérico lógico

Lógico lógico lógico


Operadores Lógicos
 Operadores lógicos (ou booleanos) são utilizados
para a efetuar avaliações entre valores lógicos
(Verdadeiro ou Falso). Possui um
único
operando
Operador Operação Exemplos
NÃO Negação not (COR == “azul”) Verifica se
triângulo é
E Conjunção (ladoA == ladoB) and (ladoB == ladoC) equilátero
(ladoA == ladoB) or (ladoB == ladoC)
OU Disjunção Verifica se
or (ladoA == ladoC) triângulo é
isósceles
Operadores Lógicos
:: Tabelas Verdade
 Conjunto de todas as possibilidades de resultados
de cada operador lógico.

A NÃO (A) A B (A) E (B) A B (A) OU (B)


F V F F F F F F
V F F V F F V V
V F F V F V
V V V V V V
Precedência entre operadores
Operador Significado Precedência
() Grupos entre parênteses +
** Potenciação
- Negação
Multiplicação, divisão real,
* / % //
resto, divisão inteira
+ - Subtração, adição
> >= < <= == != Comparações
not NÃO lógico
and E lógico
or OU lógico
= Atribuição –
Exemplos

(salario > 1000 and


(x <= 20 or x >= 40)
idade > 18)

x resultado salario idade resultado


10 V 900 18 F
20 V 1000 19 F
30 F 1100 17 F
40 V 1200 22 V
50 V
Exemplos

(num % 2 != 0 and
(m – 4 > m / 2)
contador < 50)

m resultado num contador resultado


2 F 1231 51 F
8 F 1232 50 F
30 V 1233 49 V
1234 48 F
Atenção
:: Compare variáveis do mesmo tipo
x = 4

if ("4" == x):
print("igual")
else:
print("diferente")

 No exemplo acima, a variável x é do tipo inteiro,


mas a expressão "4" representa um caractere, e
não um número.
Armadilhas
:: Números float são aproximações
 Há infinitos números u = 11111113
reais. v = -11111111
 A memória do w = 7.51111111
computador é um print((u + v) + w)
recurso finito. 9.51111111
 Logo, não há como
representar todos os print(u + (v + w))
números reais em 9.511111110448837
memória.
 Consequentemente, u + (v + w) == (u + v) + w
representamos False
aproximações.
Estabeleça um nível mínimo de
precisão
Alternativa 1 Alternativa 2

u = 11111113 u = 11111113
v = -11111111 v = -11111111
w = 7.51111111 w = 7.51111111
x = (u + v) + w x = (u + v) + w
y = u + (v + w) y = u + (v + w)

x == y x == y
False False
round(x,6) == round(y,6) abs(x-y) < 0.0000001
True True
Funções round e abs

round(x, n) abs(z)
 Arredonda um  Determina o módulo
número x em n casas de um número real z,
decimais. ou seja, sua distância
até o zero.
Problema 1
 Dados três valores X, Y e Z, verifique:
 Se eles podem ser os comprimentos dos lados de um
triângulo.
 Caso positivo, se o triângulo é equilátero, isósceles ou
escaleno.
Problema 1
1 – Identificar o problema
 Propriedade básica de um triângulo:
O comprimento de cada lado de um triângulo é menor
do que a soma dos comprimentos dos demais lados.
Equilátero Isósceles Escaleno

Triângulo cujos Triângulo que Triângulo que


lados têm tem dois lados tem os três
comprimentos com lados com
iguais. comprimentos comprimentos
iguais. diferentes.
Problema 1
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


X m >0
Entradas Y m >0
Z m >0
Saídas “Não é triângulo”,
“Triângulo equilátero”,
Saídas mensagem ---
“Triângulo isósceles”,
“Triângulo escaleno”
Problema 1
3 – Projetar algoritmo
início (X >= Y + Z) or (Y >= Z +
C1 X) or (Z >= X + Y)
X, Y, Z
C2 (X == Y) and (Y == Z)
C1 F
(X == Y) or (Y == Z) or
V F
C3 (Z == X)
C2
V C3 F
V
“Não é “Equilátero” “Isósceles" “Escaleno”
triângulo”

fim
Problema 1
4 – Codificar em Python
# Entrada de dados
X = float(input("Digite o lado X: "))
Y = float(input("Digite o lado Y: "))
Z = float(input("Digite o lado Z: "))

if ((X >= Y + Z) or (Y >= X + Z) or (Z >= Y + X)):


print("Nao eh triangulo.")
else:
if ((X == Y) and (Y == Z)):
print("Triangulo equilatero")
else:
if ((X == Y) or (Y == Z) or (Z == X)):
print("Triangulo isosceles")
else:
print("Triangulo escaleno")
Funções de arredondamento
:: Módulo math

• Arredonda x para o inteiro mais


ceil(x) próximo em direção a mais infinito

• Arredonda x para o inteiro mais


floor(x) próximo em direção a menos
infinito
Funções de arredondamento
:: Diferenças
ceil() e round()
floor()
• Requer módulo • É padrão do Python.
math. Não requer o módulo
• Possui apenas um math.
argumento de • Possui dois
entrada. argumentos de
• Resultado é um entrada.
número inteiro. • Resultado é um
número real.
Funções de arredondamento
:: Diferenças
 round

 floor

 ceil
Exemplo round floor ceill
3.4 round(3.4,0) = 3 floor(3.4) = 3 ceill(3.4) = 4
3.6 round(3.6,0) = 4 floor(3.6) = 3 ceill(3.6) = 4
-3.4 round(-3.4,0) = -3 floor(-3.4) = -4 ceill(-3.4) = -3
-3.6 round(-3.6,0) = -4 floor(-3.6) = -4 ceill(-3.6) = -3
Fonte: “Learn to Program with Small Basic”
Problema 2
 Calcular o alcance 𝑆
de um projétil, dados
a velocidade inicial 𝑣0
e o ângulo 𝜃 entre o
cano do canhão e o
solo. Considere 𝑔 =
9,81𝑚/𝑠 2 .
Problema 2
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


Velocidade inicial m/s >= 0
Entradas
Ângulo com solo graus ]0; 90[
Saídas Alcance m >0
Problema 2
3 – Projetar algoritmo
início (v0 >= 0) and (theta > 0) and
C1 (theta < 90)
v0, theta

g = 9.81

V
C1
F
s = (v0**2 / g) * sin(2 * theta)
“Dados
inválidos”
s

fim
Problema 2
4 – Codificar em Python
# Entrada de dados e definicao de constantes
v0 = float(input("Velocidade inicial: "))
theta_g = float(input("Angulo: "))
g = 9.81

# Importar modulo matematico


from math import *

if (v0 >= 0) and (theta_g > 0) and (theta_g < 90):


theta_rad = theta_g * pi / 180.0
s = (v0**2 / g) * sin(2 * theta_rad)
print(round(s, 3))
else:
print("Dados invalidos.")
Conteúdo

Como montar uma condição?

Estruturas Condicionais Encadeadas

Exemplos Extras
Estruturas Condicionais Encadeadas

 Estruturas condicionais encadeadas (ou aninhadas)


são estruturas condicionais dentro de outras
estruturas condicionais.
 Quando um problema exige um longo
encadeamento de ifs e elses, a criação de
diversos níveis deslocados poderia causar
confusão.
 A cláusula elif substitui um par else if sem
criar um outro nível na estrutura condicional.
Estruturas Condicionais Encadeadas
:: Exemplo
if (delta < 0):
print("Nao tem raiz real")
else: V
if (delta == 0):
Δ<0
r1 = -b/(2 * a) F
else:
r1 = (-b+delta**0.5)/(2*a) V
r2 = (-b–delta**0.5)/(2*a) Δ=0
F

if (delta < 0): Calcular r1 Calcular Sem


print("Nao tem raiz real") e r2 r1 solução
elif (delta == 0):
r1 = -b/(2 * a)
else:
r1 = (-b + delta**0.5)/(2*a)
r2 = (-b – delta**0.5)/(2*a) fim
Problema 3
 Escrever um script em Python que leia um ângulo
entre 0 e 360° e informe o ponto cardeal
correspondente.

Problema 3
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


Entradas Ângulo graus [0; 360]
Saídas Ponto Cardeal --- {N, S, L, O}
Problema 3
3 – Projetar algoritmo
início
ang

ang == 0 or V “Norte”
ang == 360
F
ang == 180 V “Sul"
F
ang == 90 V “Leste”
F
ang == 270 V “Oeste”
F
“Desconhecido”

fim
Problema 3
4 – Codificar em Python
# Entrada de dados
ang = int(input("Digite um angulo: "))
if ((ang == 0) or (ang == 360)):
print("Norte")
elif (ang == 180):
print("Sul")
elif (ang == 90):
print("Leste")
elif (ang == 270):
print("Oeste")
else:
print("Desconhecido")
Problema 4
 Anos bissextos são definidos da
seguinte forma:
1. Anos divisíveis por 400 são
bissextos.
2. Anos divisíveis por 100, mas
não por 400, não são
bissextos.
3. Anos divisíveis por 4, mas não
por 100, são bissextos.
4. Todos os outros anos não são
anos bissextos.
 Escreva um script em Python
que determine se um ano é
bissexto ou não.
Problema 4
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


Entradas Ano ---
Saídas {bissexto,
Saídas Mensagem ---
não bissexto}
Problema 4
3 – Projetar algoritmo – versão 1
ano % 400 == 0

V F

Bissexto ano % 100 == 0


V F

Não
ano % 4 == 0
bissexto
V F

Não
Bissexto
bissexto
Problema 4
3 – Projetar algoritmo – versão 1
início C1 ano % 400 == 0
ano C2 ano % 100 == 0
C1 F C3 ano % 4 == 0
V C2 F
V C3 F
V
“Bissexto” “Não “Bissexto” “Não
bissexto” bissexto”

fim
Problema 4
4 – Codificar em Python – versão 1
# Entrada de dados
ano = int(input("Digite o ano: "))

# Verifica se ano eh bissexto


if (ano % 400 == 0):
print("Bissexto")
elif (ano % 100 == 0):
print("Nao Bissexto")
elif (ano % 4 == 0):
print("Bissexto")
else:
print("Nao Bissexto")
Problema 4
3 – Projetar algoritmo – versão 2
ano % 400 == 0
V F

Bissexto ano % 100 == 0


V F
Não
bissexto ano % 4 == 0
V F
Não
Bissexto bissexto

Bissexto: ano % 400 == 0 OU (ano % 100 != 0) E (ano % 4 == 0)


Problema 4
3 – Projetar algoritmo – versão 2
início C1
(ano % 400 == 0)
or
ano ((ano % 100 != 0) and (ano % 4 == 0))

V C1 F

Bissexto Não
bissexto

fim
Problema 4
4 – Codificar em Python – versão 2
# Entrada de dados
ano = int(input("Digite o ano: "))

# Verifica se ano eh bissexto


if ((ano%400 == 0) or ((ano%100 != 0) and (ano%4 == 0))):
print("Bissexto")
else:
print("Nao Bissexto")
Problema 5
 A partir da renda
mensal, como
determinar o valor do
imposto de renda
devido?
 Importante: as
alíquotas são
aplicadas de forma
progressiva.
Problema 5
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


Entradas Renda R$ ≥0
Saídas Imposto R$ ≥0
Problema 5
3 – Projetar algoritmo
 O que é o cálculo progressivo?
 Uma pessoa que recebe R$ 1.500 mensais não pagará
imposto de 7,5% sobre os R$ 1.500, mas sim sobre a
diferença (1500,00 – 1499,15 = 0,85).
 Da mesma maneira, quem recebe R$ 2.500 pagará:
◼ 7,5%de (2246,75 – 1499,15)
◼ 15% de (2500 – 2246,75)

E assim por diante... Faixa de renda mensal Alíquota


Até R$ 1.499,15 Isento
De R$ 1.499,16 até R$ 2.246,75 7,5%
De R$ 2.246,76 até R$ 2.995,70 15%
De R$ 2.995,71 até R$ 3.743,19 22,5%
acima de R$ 3.743,19 27,5%
Problema 5
3 – Projetar algoritmo
 Para simplificar o desenho do fluxograma, vamos
adotar as seguintes convenções:

Faixa de renda mensal Constante


R$ 1.499,15 V1
R$ 2.246,75 V2
R$ 2.995,70 V3
R$ 3.743,19 V4
Problema 5
3 – Projetar algoritmo – versão 1
início
R
V V V V
R > V1 R > V2 R > V3 R > V4
F F F F
imp = 0
imp = 0,075*(R-V1)
imp = 0,075*(V2-V1) +
0,15*(R-V2)
imp = 0,075*(V2-V1) + imp = 0,075*(V2-V1) +
0,15*(V3-V2) + 0,15*(V3-V2) +
0,225*(R-V3) 0,225*(V4-V3)+
0,275*(R-V4)

imp
fim
Problema 5
3 – Projetar algoritmo – versão 2
início
R Facilita uso do elif
F F F F
R <= V1 R <= V2 R <= V3 R <= V4
V V V V
imp = 0
imp = 0,075*(R-V1)
imp = 0,075*(V2-V1) +
0,15*(R-V2)
imp = 0,075*(V2-V1) + imp = 0,075*(V2-V1) +
0,15*(V3-V2) + 0,15*(V3-V2) +
0,225*(R-V3) 0,225*(V4-V3)+
0,275*(R-V4)

imp
fim
Problema 5
4 – Codificar em Python
# Entrada de dados e definicao de constantes
r = float(input("Digite sua renda: "))
v1 = 1499.15
v2 = 2246.75
v3 = 2995.70
v4 = 3743.19

if (r <= v1):
imp = 0
elif (r <= v2):
imp = 0.075*(r-v1)
elif (r <= v3):
imp = 0.075*(v2-v1) + 0.15*(r-v2)
elif (r <= v4):
imp = 0.075*(v2-v1) + 0.15*(v3-v2) + 0.225*(r-v3)
else:
imp = 0.075*(v2-v1)+0.15*(v3-v2)+0.225*(v4-v3)+0.275*(r-v4)
print(imp)
Estruturas Condicionais
:: Revisão

Simples
(if)

Estruturas Composta
Condicionais (if ... else)

Múltipla escolha
(if ... elif ... else)
Conteúdo

Como montar uma condição?

Estruturas Condicionais Encadeadas

Exemplos Extras
Exemplo 1
 Sejam A, B, C três números inteiros quaisquer.
 Escreva um script Python para arrumá-los em
ordem decrescente.
Exemplo 1
1 – Identificar o problema
 São dados três números quaisquer A, B, C.
 Eles devem ser arrumados em ordem decrescente.
 Pode-se considerar que a saída seja
N1 ≥ N2 ≥ N3
 Agora, o problema se resume a atribuir:

A N1
B N2
C N3
Exemplo 1
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


Inteiros, qualquer
Entradas A, B, C ---
ordem
Inteiros, ordem
Saídas N1, N2, N3 ---
decrescente
Exemplo 1
3 – Projetar algoritmo
A>B
V F

N1 ← A N1 ← B
N2 ← B N2 ← A

C > N1
V F
N3 ← N2
C > N2
N2 ← N1
N1 ← C V F

N3 ← N2
N3 ← C
N2 ← C
Exemplo 1
3 – Projetar algoritmo
início 1

A, B, C
C > N1 F
V C > N2 F
A>B F
V
V
N3 ← N2 N3 ← N2 N3 ← C
N2 ← N1 N2 ← C
N1 ← A N1 ← B N1 ← C
N2 ← B N2 ← A
1
N1, N2, N3

fim
Exemplo 1
4 – Codificar em Python
# Entrada de dados
a = int(input("Digite o numero a: "))
b = int(input("Digite o numero b: "))
c = int(input("Digite o numero c: "))
if (a > b):
n1 = a
n2 = b
else:
n1 = b
n2 = a
if (c > n1):
n3 = n2
n2 = n1
n1 = c
else:
if (c > n2):
n3 = n2
n2 = c
else:
n3 = c
print("Numeros em ordem:",n1,n2,n3)
Exemplo 2
 Um gerente quer medir
a eficiência de
processos em sua
empresa.
 Um processo X
começou no horário h1
e terminou no mesmo
dia, no horário h2,
também medido em
horas e minutos.
 Quanto tempo durou o
processo?
Exemplo 2
2 – Definir entradas e saídas

Grandeza Unidade
Unidadede
demedida
medida Faixa
Faixade
devalores
valores
Horário 1 (hh1, mm1) horas, minutos [0; 23], [0; 59]
Entradas
Horário 1 (hh2, mm2) horas, minutos [0; 23], [0; 59]
Saídas Diferença de tempo
Saídas horas, minutos [0; 23], [0; 59]
(Δh, Δm)
Exemplo 2
3 – Projetar algoritmo
Caso 1 Caso 2
mm2 ≥ mm1 mm2 < mm1

Início: 9h 17min Início: 9h 43min


Fim: 15h 43min Fim: 15h 17min

Δm = 43 – 17 = 26min Δm = 17 – 43 = 34min (-1h)


Δh = 15 – 9 = 6h Δh = 15 – 9 – 1 = 5h
Exemplo 2
3 – Projetar algoritmo
início
hh1, mm1
hh2, mm2

dm = (mm2 – mm1) % 60

mm2 >= mm1


F

V
dh = hh2 – hh1 dh = hh2 – hh1 – 1

dh, dm

fim
Exemplo 2
4 – Codificar em Python
# Entrada de dados
hh1 = int(input("Hora inicial: "))
mm1 = int(input("Minuto inicial: "))
hh2 = int(input("Hora final: "))
mm2 = int(input("Minuto final: "))

# Diferenca de minutos
dm = (mm2 – mm1) % 60

# Diferenca de horas
if (mm2 >= mm1):
dh = hh2 – hh1
else:
dh = hh2 – hh1 – 1

print(dh, dm)
Exemplo 3
 Uma quantia inicial 𝑞 é
aplicada a uma taxa 𝑡 de
juros. O saldo 𝑠 desse
investimento após 𝑚
meses é dado por:
𝑚
𝑠 =𝑞 1+𝑡
 Para uma taxa 𝑡 ao mês,
quanto tempo (em anos e
meses) é necessário para
que o saldo dobre em
relação ao valor inicial?
Exemplo 3
2 – Definir entradas e saídas

Grandeza Unidade de medida Faixa de valores


Entradas Taxa de juros (t) --- [0; 1]
Saídas m (tempo) anos; meses [0, +∞[; [0, 11]
Exemplo 3
3 – Projetar algoritmo
 A saída do problema é 𝑠 =𝑞 1+𝑡 𝑚
a quantidade de
meses e anos, mas a 2𝑞 𝑚
= 1+𝑡
saída da equação é o 𝑞
saldo, informação que
log 2 = log 1 + 𝑡 𝑚
já conhecemos.
 Portanto, temos de log 2 = 𝑚 ⋅ log 1 + 𝑡
reescrever a equação,
isolando o 𝑚 no lado log 2
𝑚=
esquerdo. log 1 + 𝑡
Exemplo 3
3 – Projetar algoritmo
 A expressão anterior
resultará em um log 2
𝑚=
número com parte log 1 + 𝑡
fracionária.
 Contudo, o valor da
saída é inteiro, pois o
rendimento acontece
a cada mês.
 Logo, o resultado deve
ser arredondado para
cima (math.ceil)
Exemplo 3
3 – Projetar algoritmo
início

V
(t >= 0) and (t <= 1)

F m = ceil( log(2) / log(1 + t) )

Dados m // 12 anos
inválidos

m % 12 meses

fim
Exemplo 3
4 – Codificar em Python
# Entrada de dados
t = float(input("Informe a taxa de aplicacao: "))

if ((t >= 0) and (t <= 1)):


# Importar modulo matematico
from math import *

m = ceil(log(2) / log(1 + t))

print(m // 12) # no. de anos


print(m % 12) # no. de meses (0 a 11)
else:
print("Dados invalidos")
Exemplo 4
 Duas pessoas jogam pedra, papel, tesoura.
 Como determinar quem ganhou?
Exemplo 4
2 – Definir entradas e saídas

Grandeza Unidade
Unidadede
demedida
medida Faixa
Faixade
devalores
valores
Mão do J1 --- {Pedra, Papel, Tesoura}
Entradas
Mão do J2 --- {Pedra, Papel, Tesoura}
Saídas Vencedor --- {J1, J2, Empate}
Exemplo 4
3 – Projetar algoritmo – versão 1
 Se J1 == J2
 Empate

 J1 ganha quando:
 (J1 == Pedra E J2 == Tesoura) OU
 (J1 == Papel E J2 == Pedra) OU
 (J1 == Tesoura E J2 == Papel)

 J2 ganha caso contrário


Exemplo 4
3 – Projetar algoritmo – versão 1
início
(J1 == Pedra E J2 == Tesoura) OU
Sortear J1, J2 C1 (J1 == Papel E J2 == Pedra) OU
(J1 == Tesoura E J2 == Papel)
F
J1 == J2
V F
C1
V

Empate Jogador 1 Jogador 2


ganhou ganhou

Como fazer o
sorteio?
fim
Exemplo 4
4 – Codificar em Python – sorteio
# Sorteio do jogo "Pedra, Papel, Tesoura"
# Pedra = 0
# Papel = 1
# Tesoura = 2
from random import *

j1 = randint(0,2)
j2 = randint(0,2)

(J1 == Pedra E J2 == Tesoura) OU (J1 == 0 E J2 == 2) OU


(J1 == Papel E J2 == Pedra) OU (J1 == 1 E J2 == 0) OU
(J1 == Tesoura E J2 == Papel) (J1 == 2 E J2 == 1)
Exemplo 4
4 – Codificar em Python – versão 1
# Sorteio do jogo "Pedra, Papel, Tesoura"
# Pedra = 0
# Papel = 1
# Tesoura = 2
from random import *

j1 = randint(0,2)
j2 = randint(0,2)

if (j1 == j2):
print("Empate.")
else:
if (((j1 == 0) and (j2 == 2)) or ((j1 == 1) and (j2
== 0)) or ((j1 == 2) and (j2 == 1))):
print("Jogador 1 ganhou.")
else:
print("Jogador 2 ganhou.")
Abstração
 Associar objetos (pedra,
papel, tesoura) a números
é uma forma de
abstração.
 Adotamos essa abstração
para simplificar o código
do sorteio.
 Tal simplificação não
poderia ser também
aplicada ao teste da
condição?
Exemplo 4
:: Repensando o Jogo
1 1

2 0 2 0

Legenda
Jogador em destaque
2 0 ganhou
Jogador em destaque
perdeu
Exemplo 4
:: Repensando o Jogo
 Por exemplo, é natural
pensar que três horas
antes de 2h no relógio
resulta em 11h.
 Inconscientemente,
fazemos as seguintes
contas:
 2h– 3h = –1h
 –1h + 12h = 11h
Operador %
 O operador % tem uma propriedade interessante:
a%b
Se a é positivo
• Resultado: resto da divisão

Se a é negativo
• Resultado: determinado por aritmética
circular, como em um relógio.
Aritmética circular (ou modular)

0 0
Uma casa [0 – 1] = 2
para trás 2 1 2 1
(0 – 1) % 3 = 2

0 0
Duas casas [0 – 2] = 1
para trás 2 1 2 1
(0 – 2) % 3 = 1

0 0
Três casas [0 – 3] = 0
para trás 2 1 2 1
(0 – 3) % 3 = 0
Exemplo 4
:: Repensando o Jogo

1 (2 – 1) % 3 = 1
2
0 (2 – 0) % 3 = 2

O resultado determina
0 (1 – 0) % 3 = 1
quem ganhou:
1 1: Jogador 1
2 (1 – 2) % 3 = 2 2: Jogador 2

2 (0 – 2) % 3 = 1
0
1 (0 – 1) % 3 = 2
Exemplo 4
3 – Projetar algoritmo – versão 2
início
Teste esta condição no Shell
Sortear J1, J2 do Python, para todas as
possibilidades de J1 e J2
F
J1 == J2
V F
(J1-J2)%3 == 1

Empate Jogador 1 Jogador 2


ganhou ganhou

fim
Exemplo 4
4 – Codificar em Python – versão 2
# Sorteio do jogo "Pedra, Papel, Tesoura"
# Pedra = 0
# Papel = 1
# Tesoura = 2
from random import *

j1 = randint(0,2)
j2 = randint(0,2)

if (j1 == j2):
print("Empate.")
else:
if ((j1 - j2) % 3 == 1):
print("Jogador 1 ganhou.")
else:
print("Jogador 2 ganhou.")
Referências bibliográficas
 Menezes, Nilo Ney Coutinho (2010). Introdução à
Programação com Python. Editora Novatec.
 HETLAND, Magnus Lie (2008). Beginning Python:
From Novice to Professional. Springer eBooks, 2ª
edição. Disponível em:
http://dx.doi.org/10.1007/978-1-4302-0634-7.
 Gaddis, Tony (2012). Starting out with Python, 2ª
edição. Editora Addison-Wesley.
 DIERBACH, Charles. Introduction to Computer
Science using Python: a computational problem-
solving approach. John Wiley & Sons, 2012.
Dúvidas?

Você também pode gostar