quarta-feira, 22 de outubro de 2014

Teste 1 - TP1

Teste # 1 - TP1

P1

Em Python todos os programas que escrevemos quando são executados são-no num dado ambiente. Esse ambiente é composto pelo espaço de nomes, o lugar da memória onde se encontram os nomes activos, e o espaço dos objectos, o lugar da memória onde se encontram os objectos descritos através dos seus atributos.

Os dois espaços estão ligados entre si, no sentido de que os nomes estão associados a objectos. essa associação é feita através da instrução de atribuição (explicita ou implícita). Um exemplo simples:

Depois de fazermos a = 5 o nome a passa a existir no espaço de nomes, associado ao objecto de valor 5.

P2

Este problema é muito simples. Escrevo um programa que recebe como entrada o número de tentativas e o número em que digo que acerto. Depois tenho um ciclo que pode ser executado um número máximo de vezes igual ao número de tentativas e que termina com verdadeiro se sair o número, falso no caso contrário.
def aposta(n,m):
    for i in range(m):
        num = random.randint(1,6)
        if num == n:
            return True
    return False
P3

Este programa tem duas partes. Comecemos pela primeira: desenhar um losango colorido, numa dada posição e orientação e com um dado tamanho. Este problema não é muito diferente do que foi feito nas aulas envolvendo polígonos regulares. Daí a solução:
import turtle

def petala(posx, posy, orienta, lado, cor):
    turtle.penup()
    turtle.goto(posx,posy)
    turtle.pendown()
    turtle.setheading(orienta)
    turtle.fillcolor(cor)
    turtle.begin_fill()
    for i in range(2):
        turtle.forward(lado)
        turtle.left(60)
        turtle.forward(lado)
        turtle.left(120)
    turtle.end_fill()
Começamos por levantar a caneta, posicionar a tartaruga, orientá-la e definir a cor. Depois é só executar as operações de avanço e rotação.

A segunda parte é mais fácil pois consiste em repetir o desenho dos losangos, mantendo a posição de referência e rodando o losango.
def flor(posx, posy,orienta, lado, cor, n,afastamento):
    """ desenha uma flor com n pétalas."""
    angulo = orienta
    for i in range(n):
        petala(posx,posy, angulo, lado,cor)
        angulo = angulo + afastamento
    turtle.hideturtle()
    turtle.exitonclick()

Sem comentários:

Enviar um comentário