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 + 10Muitos 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