sexta-feira, 21 de outubro de 2016

Teste 1 - TP2

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. O nome de um objecto é também um atributo que o objecto obtém através de uma atribuição. Quando fazemos x = x + 1 isso é informaticamente possível porque à esquerda do sinal de atribuição o ‘x’ remete para o nome, enquanto que à direita do sinal de atribuição remete o valor.

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 distancia(lat1,long1,lat2,long2):
4.    termo1 = math.sin(lat1) * math.sin(lat2)
5.    termo2 = math.cos(lat1) * math.cos(lat2) * math.cos(long1 - long2)
6.    return 6371.01 * math.acos(termo1 + termo2)

Pergunta 3
Desenhar um tiragulo rectângulo é semelhante a desenhar um triângulo, só que agora basta termos as duas medidas dos catetos. 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 tri_rect(x,y,orienta,cor,lado_1,lado_2):
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.     
13.    turtle.forward(lado_1)
14.    turtle.left(90)
15.    turtle.forward(lado_2)
16.    turtle.goto(x,y)
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 triângulos 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.        tri_rect(x,y,orienta,cor,menor,maior)
5.        orienta = orienta + angulo

Sem comentários:

Enviar um comentário