Académique Documents
Professionnel Documents
Culture Documents
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation Generaliza c ao Interface Design Refactoring
Swampy
M odulo que fornece um conjunto de fun c oes para desenhar linhas. Para mais informa c ao consultar http://greenteapress.com/thinkpython/swampy/ A vers ao acima s o funciona com Python2 no entanto existe no Moodle uma adapta c ao para Python3
Exemplo
1.2
Fun c oes
fd e bk: mover a tartaruga para a frente e para tr as, respectivamente lt e rt: mover a tartaruga para a esquerda e para a direita, respectivamente. pu e pd: p(en) u(p) e d(own), ou seja, a tartaruga n ao deixa ou deixa car rasto, respectivamente
1.3
Exemplo
from swampy . T u r t l e W o r l d i m p o r t world = TurtleWorld () bob = T u r t l e ( ) p r i n t ( bob ) f d ( bob , 1 0 0 ) l t ( bob ) f d ( bob , 1 0 0 ) wait for user () Como e que poder amos desenhar um quadrado?
1.4
Exemplo
f d ( bob , 1 0 0 ) l t ( bob ) f d ( bob , 1 0 0 ) l t ( bob ) f d ( bob , 1 0 0 ) l t ( bob ) f d ( bob , 1 0 0 ) wait for user ()
1.5
Ciclo for I
PI VBN Mundo das Tartarugas Mundo das Tartarugas
Exemplo
Encapsulation Generaliza c ao
Exemplo
1.6
Encapsulation
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation Generaliza c ao Interface Design Refactoring
Dena uma fun c ao square que recebe como par ametro uma tartaruga e utiliza-a para desenhar um quadrado
1.7
Exemplo
1.8
Generaliza c ao
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation Generaliza c ao Interface Design Refactoring
Adicione ` a fun c ao square um par ametro length que indique o tamanho de cada lado do quadrado.
1.9
Exemplo
1.10
Generaliza c ao II
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation
Para al em das fun c oes lt e rt tamb em existem outras com o mesmo nome mas onde e poss vel especicar o n umero de graus da viragem. Por exemplo, lt(bob, 45) gira o bob 45 graus para a esquerda. A partir da fun c ao square dena uma outra denominada polygon que desenhe um poligono regular com n lados.
Dica
1.11
Pol gono
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation
Exemplo
Refactoring
1.12
C rculo
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation Generaliza c ao Interface Design Refactoring
Escreva uma fun c ao para desenhar um c rculo que recebe como par ametro o raio r
1.13
Circle I
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation
Exemplo
Refactoring
1.14
Circle I
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation
Exemplo
Refactoring
1.15
Arc I
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation Generaliza c ao Interface Design Refactoring
Escreva uma vers ao mais geral circle denominada por arc que recebe um par ametro adicional angle que determina que frac c ao do c rculo se deve desenhar. Quando angle for igual a 360, arc deve desenhar um c rculo completo.
Exemplo
def arc ( t , r , angle ) : a r c l e n g t h = 2 math . p i r a n g l e / 360 n = i n t ( a r c l e n g t h / 3) + 1 step length = arc length / n step angle = f l o a t ( angle ) / n f o r i in range (n ) : fd ( t , step length ) lt (t , step angle )
1.16
Arc II
Exemplo
PI VBN Mundo das Tartarugas Mundo das Tartarugas Encapsulation Generaliza c ao Interface Design Refactoring
def p o l y l i n e ( t , n , length , angle ) : f o r i in range (n ) : fd ( t , length ) l t ( t , angle ) def polygon ( t , n , length ) : angle = 360.0 / n p o l y l i n e ( t , n , length , angle ) def arc ( t , r , angle ) : a r c l e n g t h = 2 math . p i r a n g l e / 360 n = i n t ( a r c l e n g t h / 3) + 1 step length = arc length / n step angle = f l o a t ( angle ) / n polyline (t , n , step length , step angle ) def c i r c l e ( t , r ) : a r c ( t , r , 360)
1.17