sexta-feira, 21 de outubro de 2016

Teste 1 - TP1

Pergunta 1
Em Python tudo são objectos. Os objectos têm atributos que dependem do tipo do objecto. No entanto existem três que todos têm: identidade, valor e tipo. Os objectos estão armazenados num espaço próprio da memória, designado por Espaço dos Objectos. A localização do objecto é a sua identidade, e, nesse local estão a descrição do valor do objecto e do seu tipo. O Espaço de Nomes é o local da memória onde estão guardados os nomes associados aos objectos. A ligação é feita através da identidade. Assim ao fazer a = 5, é criada a associação entre o nome ‘a’ e o objecto 5, cada um a “viver” no respectivo espaço.

Pergunta 2
Uma questão trivial que pedia para usar Python como se de uma vulgar calculadora se tratasse.
1.import math
2. 
3.def area(n,l):
4.    return (n * l**2)/(4 * math.tan(math.pi/4))
Pergunta 3
Desenhar um rectângulo é semelhante a desenhar um quadrado, só que agora temos duas medidas para os lados. Tornar o desenho livre da dimensão dos lados, da orientação, da cor, obriga a usar esses elementos como parâmetros e a uma preparação para o desenho antes de concretizar. É isso que faz o código seguinte:
01.import turtle
02. 
03.def rect(x,y,orienta,cor,menor,maior):
04.    # inicialização
05.    turtle.penup()
06.    turtle.goto(x,y)
07.    turtle.setheading(orienta)
08.    turtle.color(cor)
09.    turtle.pendown()
10.    turtle.begin_fill()
11.    # desenha
12.    for i in range(2):
13.        turtle.forward(menor)
14.        turtle.right(90)
15.        turtle.forward(maior)
16.        turtle.right(90)
17.    turtle.end_fill()
18.    turtle.hideturtle()
Na segunda parte da pergunta era pedido que usassem a definição anterior como auxiliar para o desenho formado por um número variável de rectângulos alinhados circularmente e igualmente espaçados. A única dificuldade era controlar a orientação, o que obrigava a saber o espaçamento. É isso que é feito no programa:
1.def boneco(n, x,y,orienta,cor,menor,maior):
2.    angulo = 360/n
3.    for i in range(n):
4.        rect(x,y,orienta,cor,menor,maior)
5.        orienta = orienta + angulo

Sem comentários:

Enviar um comentário