01.
def
piramide(n):
02.
for
i
in
range(
1
, n
+
1
):
03.
# posiciona
04.
print
(
4
*
(n
-
i)
*
' '
, end
=
' '
)
05.
# desenha descendente
06.
for
j
in
range(i,
0
,
-
1
):
07.
print
(
'%3d'
%
j , end
=
' '
)
08.
# desenha ascendente
09.
for
j
in
range(
2
,i
+
1
):
10.
print
(
'%3d'
%
j, end
=
' '
)
11.
# muda de linha
12.
print
()
01.
def
piramide_2(n):
02.
for
i
in
range(
1
, n
+
1
):
03.
# posiciona
04.
print
(
4
*
(n
-
i)
*
' '
, end
=
' '
)
05.
# desenha ascendente
06.
for
j
in
range(
1
,i
+
1
):
07.
print
(
'%3d'
%
j, end
=
' '
)
08.
# desenha descendente
09.
for
j
in
range(i
-
1
,
0
,
-
1
):
10.
print
(
'%3d'
%
j , end
=
' '
)
11.
# muda de linha
12.
print
()
01.
def
piramide_2(n):
02.
for
i
in
range(
1
, n
+
1
):
03.
# posiciona
04.
print
(
4
*
(n
-
i)
*
' '
, end
=
' '
)
05.
# desenha ascendente
06.
for
j
in
range(
1
,i
+
1
):
07.
print
(
'%3d'
%
2
*
*
(j
-
1
), end
=
' '
)
08.
# desenha descendente
09.
for
j
in
range(i
-
1
,
0
,
-
1
):
10.
print
(
'%3d'
%
2
*
*
(j
-
1
) , end
=
' '
)
11.
# muda de linha
12.
print
()
01.
def
pir_quadrados(n,posx, posy,lado):
02.
for
i
in
range(
1
, n
+
1
):
03.
# desenha linha i
04.
# -- (1) posiciona
05.
# -- (2) desenha
06.
for
j
in
range(
1
,i
+
1
):
07.
pass
08.
# muda de linha
09.
turtle.hideturtle()
01.
def
pir_quadrados(n,posx, posy,lado):
02.
for
i
in
range(
1
, n
+
1
):
03.
# desenha linha i
04.
# posiciona
05.
# desenha
06.
for
j
in
range(
1
,i
+
1
):
07.
quadrado(turtle.xcor(),turtle.ycor(), lado)
08.
turtle.setx(turtle.xcor()
+
lado)
09.
# muda de linha
10.
turtle.hideturtle()
01.
def
quadrado(posx, posy,lado):
02.
turtle.showturtle()
03.
# posicioan
04.
turtle.penup()
05.
turtle.goto(posx, posy)
06.
turtle.pendown()
07.
# desenha
08.
for
i
in
range(
4
):
09.
turtle.forward(lado)
10.
turtle.left(
90
)
11.
turtle.hideturtle()
01.
def
pir_quadrados(n,posx, posy,lado):
02.
for
i
in
range(
1
, n
+
1
):
03.
# desenha linha i
04.
# posiciona
05.
# desenha
06.
for
j
in
range(
1
,i
+
1
):
07.
quadrado(turtle.xcor(),turtle.ycor(), lado)
08.
turtle.setx(turtle.xcor()
+
lado)
09.
# muda de linha
10.
turtle.penup()
11.
turtle.goto(posx,turtle.ycor()
-
lado)
12.
turtle.pendown()
13.
turtle.hideturtle()
01.
def
pir_quadrados(n,posx, posy,lado):
02.
for
i
in
range(
1
, n
+
1
):
03.
# desenha linha i
04.
# posiciona
05.
turtle.penup()
06.
turtle.goto(posx
+
(n
-
i)
*
lado
/
2
, (n
-
i)
*
lado
-
posy)
07.
turtle.pendown()
08.
# desenha
09.
for
j
in
range(
1
,i
+
1
):
10.
quadrado(turtle.xcor(),turtle.ycor(), lado)
11.
turtle.setx(turtle.xcor()
+
lado)
12.
# muda de linha
13.
turtle.penup()
14.
turtle.goto(posx,turtle.ycor()
-
lado)
15.
turtle.pendown()
16.
turtle.hideturtle()
Mas, esperem. Quando eu mudo de linha o valor de y é actualizado, certo? Correcto. então porque é que no posicionamento me estou a preocupar em redefinir esse valor? Faz sentido!
01.
def
pir_quadrados_2(n,posx, posy,lado):
02.
for
i
in
range(
1
,n
+
1
):
03.
# desenha linha i
04.
# posiciona
05.
turtle.penup()
06.
turtle.setx(posx
+
(n
-
i)
*
lado
/
2
)
07.
turtle.pendown()
08.
# desenha
09.
for
j
in
range(
1
,i
+
1
):
10.
quadrado(turtle.xcor(),turtle.ycor(), lado)
11.
turtle.setx(turtle.xcor()
+
lado)
12.
# muda de linha
13.
turtle.penup()
14.
turtle.goto(posx,turtle.ycor()
-
lado)
15.
turtle.pendown()
16.
turtle.hideturtle()
Mas, se eu simplifico o posicionamento porque faço isso nsa mudança de linha... não podia fazer ao contrário, ou seja, manter a actualização de y no posicionamento e simplificar na mudança de linha? Tem lógica e está bem observado.
01.
def
pir_quadrados_3(n,posx, posy,lado):
02.
for
i
in
range(
1
,n
+
1
):
03.
# desenha linha i
04.
# posiciona
05.
turtle.penup()
06.
turtle.goto(posx
+
(n
-
i)
*
lado
/
2
, (n
-
i)
*
lado
-
posy)
07.
turtle.pendown()
08.
# desenha
09.
for
j
in
range(
1
,i
+
1
):
10.
quadrado(turtle.xcor(),turtle.ycor(), lado)
11.
turtle.setx(turtle.xcor()
+
lado)
12.
# muda de linha
13.
turtle.penup()
14.
turtle.setx(posx)
15.
turtle.pendown()
16.
turtle.hideturtle()
01.
def
grelha(n,posx, posy,lado,cor):
02.
# inicialização
03.
turtle.pencolor(cor)
04.
for
i
in
range(n):
05.
# desenha linha i
06.
for
j
in
range(n):
07.
quadrado(turtle.xcor(),turtle.ycor(), lado)
08.
turtle.setx(turtle.xcor()
+
lado)
09.
# muda de linha
10.
turtle.penup()
11.
turtle.goto(posx,turtle.ycor()
-
lado)
12.
turtle.pendown()
13.
turtle.hideturtle()
Elementar!
(Porque não pensar em variantes destes problemas, ou em usar a grelha final para colocar tartarugas a passear sobre a dita??? A imaginação é o limite.)
Sem comentários:
Enviar um comentário