segunda-feira, 23 de outubro de 2017

Teste #1 - TP4

P1

O seguinte programa possui um ou mais erros/omissões. Identifique o(s) erro(s)/omissão(ões)relacionando-o(s) com o conceito de espaço de nomes do python.
1.def  polar_to_cart_x(r, ang):
2.    x = r * math.cos(ang)
3.    return x
4.if  __name__  == “__main__":
5.    print(polar_to_cart_x (10, pi/4))
Não é feita a importação do módulo math e devemos usar math.pi e não pi.

P2

Escreva um programa para contar o número de pontos que estão dentro de uma circunferência de raio r centrada em (0, 0). O programa deverá receber o número de pontos atestar (num) e o raio (r) como parâmetros. As coordenadas de cada ponto deverão ser pedidas interativamente ao utilizador. No final, o programa deverá indicar o número de pontos que estão dentro da circunferência.
01.import math
02. 
03.def dentro(raio, x, y):
04.    len = math.sqrt(x ** 2 + y ** 2)
05.    if len <= raio:
06.        return True
07.    else:
08.        return False
09.     
10. 
11.def conta_dentro_circulo(num, raio):
12.    num_dentro = 0
13.    for i in range(num):
14.        x = eval(input("x: "))
15.        y = eval(input("y: "))
16.         
17.        if dentro(raio, x, y):
18.            num_dentro = num_dentro + 1
19.     
20.    return num_dentro
21.             
22.     
23.if __name__ == "__main__":
24.    print(conta_dentro_circulo(3, 20))
P3

Usando o módulo turtle, escreva um programa que lhe permita desenhar formas do tipo da ilustrada na Figura. Cada forma é composta por um rectângulo com uma circunferência interna, centrados no mesmo ponto.O raio da circunferência dependerá das dimensões do rectângulo, de acordo com o ilustrado na figura. O programa deverá ser parametrizável de maneira a permitir escolher o número de formas, as dimensões mínima e máxima dos lados dos rectângulos, bem como as posições (x e y) dos mesmos. As coordenadas e dimensões do rectângulo envolvente de cada forma deverão ser geradas aleatoriamente.Soluções modulares serão valorizadas.
01.import turtle
02.import random
03. 
04.def rectangulo(xr, yr, lado1, lado2):
05.    #preparar
06.    turtle.penup()
07.    turtle.goto(xr,yr)
08.    turtle.pendown()
09.     
10.    #desenhar
11.    for i in range(4):
12.        if i%2 == 0:
13.            turtle.forward(lado1)
14.        else:
15.            turtle.forward(lado2)
16.        turtle.right(90)
17.         
18.def circulo(xc, yc, raio):
19.    #preparar
20.    turtle.penup()
21.    turtle.goto(xc, yc)
22.    turtle.pendown()
23.     
24.    #desenhar
25.    turtle.circle(raio)
26.     
27. 
28.def forma_rect_circulo(xf, yf, lado1, lado2):
29.    #rectangulo
30.    rectangulo(xf, yf, lado1, lado2)
31. 
32.    #circulo no interior
33.    raio = min(lado1, lado2) / 2
34.    xc = xf + lado1/2
35.    yc = yf - lado2/2 - raio
36.    circulo(xc, yc, raio)
37.     
38.     
39.def desenha_formas(num, xmin, xmax, ymin, ymax, ladomin, ladomax):
40.     
41.    #sortear e desenhar
42.    for i in range(num):
43.        xf = random.randint(xmin, xmax)
44.        yf = random.randint(ymin, ymax)
45.        lado1 = random.randint(ladomin, ladomax)
46.        lado2 = random.randint(ladomin, ladomax)
47.        forma_rect_circulo(xf, yf, lado1, lado2)
48.     
49.     
50.if __name__ == "__main__":
51.    turtle.hideturtle()  
52.    desenha_formas(5, -300, 300, -300, 300, 50, 150)
53.    turtle.exitonclick()

Sem comentários:

Enviar um comentário