Era pedido um programa que calculasse a percentagem de ocorrências de caras no lançamento de uma moeda ao ar. O número dos lançamentos era um parâmetro do programa.
Não era preciso pensar muito para perceber que: (a) vamos precisar de simular o lançamento da moeda um número fixo de vezes e, (b) contar o número de vezes em que ocorreu caras. Um modelo inicial de solução poderá ser:
def caras(n): # inicializa contagem for i in range(n): # lança moeda if #caras?: # actualiza contagem return #percentagemAprofundando um pouco mais a solução, torna-se claro que vamos precisar de um acumulador que conte o número de vezes em que saiu caras:
def caras(n): # inicializa contagem conta = 0 for i in range(n): # lança moeda if #caras?: # actualiza contagem conta = conta + 1 return conta/n * 100E estamos perante o padrão ciclo - acumulador!
Simular o lançamento pode ser conseguido recorrendo ao módulo random e ao método randint.
import random def caras(n): # inicializa contagem conta = 0 for i in range(n): # lança moeda resultado = random.randint(0,1) if resultado == 0: # actualiza contagem conta = conta + 1 return conta/n * 100Nesta solução admitimos que 0 significa caras. Também podíamos usar outra representação, usando agora o método choice.
import random def caras(n): # inicializa contagem conta = 0 for i in range(n): # lança moeda resultado = random.choice(’caras’,’coroas’) if resultado == ‘caras’: # actualiza contagem conta = conta + 1 return conta/n * 100Pergunta 3
Este problema tinha duas partes. Primeiro, escrever um programa que permite desenhar um quadrado, tendo como parâmetros o tamanho do lado, a cor do traço, a orientação e a posição. Segundo, usar este programa como auxiliar para desenhar vários quadrados, alterando os parâmetros em cada um de modo a desenhar uma forma semelhante a um nautilus. Divididas as questões deste modo a primeira questão era trivial (e já resolvida nas aulas,…).
import turtle
def quadrado(lado,orientacao,pos_x,pos_y,cor):
# inicializa tartaruga
turtle.showturtle()
turtle.penup()
turtle.goto(pos_x,pos_y)
turtle.setheading(orientacao)
turtle.colormode(255)
turtle.pencolor(cor)
turtle.pendown()
# desenha quadrado
for i in range(4):
turtle.forward(lado)
turtle.right(90)
turtle.hideturtle()
Como se pode ver, no início inicializamos a tartaruga de acordo com os parâmetros, para de seguida desenhar o quadrado. Não há muito mais que se possa dizer.Quanto à segunda parte do problema só tínhamos que perceber que se trata de repetir o desenho do quadrado com diferente orientação, posição e tamanho. E foi para isso que escrevemos o primeiro programa…
def boneco(lado,orientacao,pos_x,pos_y,cor,n):
for i in range(n):
# Desenha Quadrado
quadrado(lado,orientacao,pos_x,pos_y,cor)
# Actualiza parâmetros
pos_x = pos_x + lado//5
pos_y = pos_y + lado//5
orientacao = orientacao + 15
lado = lado + 10
Muitos não entenderam o significado da expressão “utilize o primeiro programa como auxiliar”. Espero que com o exemplo concreto tenham agora percebido.

Sem comentários:
Enviar um comentário