Comecemos com um dos problemas do livro, o problema 5.10. Lançamos dois dados, numerados de 1 a 6, um certo número de vezes, e queremos saber a percentagem das situações em que a soma dos dois números que saíram é par.
Perante o enunciado temos que ser capazes de perceber que o programa envolve a repetição dos lançamentos e a análise do resultado. Assim, podemos escrever um primeiro esboço de solução.
1.
def
dados_par(n):
2.
# inicialização
3.
for
i
in
range(n):
4.
# lança dados
5.
# calcula soma
6.
# testa resultado e actualiza contagem
7.
return
# resultado
1.
def
dados_par(n):
2.
# inicialização
3.
conta
=
0
4.
for
i
in
range(n):
5.
# lança dados
6.
# calcula soma
7.
# testa resultado e actualiza contagem
8.
return
100
*
conta
/
n
01.
import
random
02.
03.
def
dados_par(n):
04.
# inicialização
05.
conta
=
0
06.
for
i
in
range(n):
07.
# lança dados
08.
dado_1
=
random.randint(
1
,
6
)
09.
dado_2
=
random.randint(
1
,
6
)
10.
# calcula soma
11.
# testa resultado e actualiza contagem
12.
return
100
*
conta
/
n
01.
import
random
02.
03.
def
dados_par(n):
04.
# inicialização
05.
conta
=
0
06.
for
i
in
range(n):
07.
# lança dados
08.
dado_1
=
random.randint(
1
,
6
)
09.
dado_2
=
random.randint(
1
,
6
)
10.
# calcula soma
11.
soma
=
dado_1
+
dado_2
12.
# testa resultado e actualiza contagem
13.
if
soma
%
2
=
=
0
:
14.
conta
+
=
1
15.
return
100
*
conta
/
n
Claro que este é apenas um exemplo para o caso de queremos uma pirâmide com 5 linhas. A nossa solução terá que ser genérica. De qualquer dos modos, é claro que a solução passa por imprimir, uma a uma, as diferentes linhas.
1.
def
piramide_numeros(n):
2.
"""Desenha uma pirâmide de números."""
3.
for
i
in
range(
1
,n
+
1
):
4.
# mostra linha i
5.
# linha seguinte
6.
print
()
01.
def
piramide_numeros(n):
02.
"""Desenha uma pirâmide de números."""
03.
for
i
in
range(
1
,n
+
1
):
04.
# mostra linha i
05.
# -- (1) posicionar
06.
# -- (2) imprime sequência decrescente
07.
# -- (3) imprime sequência crescente
08.
# linha seguinte
09.
print
()
01.
def
piramide_numeros(n):
02.
"""Desenha uma pirâmide de números."""
03.
for
i
in
range(
1
,n
+
1
):
04.
# mostra linha i
05.
# -- (1) posicionar
06.
# -- (2) imprime sequência decrescente
07.
for
j
in
range(i,
0
,
-
1
):
08.
print
(
'%3d'
%
j, end
=
' '
)
09.
# -- (3) imprime sequência crescente
10.
# linha seguinte
11.
print
()
01.
def
piramide_numeros(n):
02.
"""Desenha uma pirâmide de números."""
03.
for
i
in
range(
1
,n
+
1
):
04.
# mostra linha i
05.
# -- (1) posicionar
06.
# -- (2) imprime sequência decrescente
07.
for
j
in
range(i,
0
,
-
1
):
08.
print
(
'%3d'
%
j, end
=
' '
)
09.
# -- (3) imprime sequência crescente
10.
for
j
in
range(
2
,i
+
1
):
11.
print
(
'%3d'
%
j, end
=
' '
)
12.
# linha seguinte
13.
print
()
01.
def
piramide_numeros(n):
02.
"""Desenha uma pirâmide de números."""
03.
for
i
in
range(
1
,n
+
1
):
04.
# mostra linha i
05.
# -- (1) posicionar
06.
print
(
4
*
(n
-
i)
*
' '
, end
=
'')
07.
# -- (2) imprime sequência decrescente
08.
for
j
in
range(i,
0
,
-
1
):
09.
print
(
'%3d'
%
j, end
=
' '
)
10.
# -- (3) imprime sequência crescente
11.
for
j
in
range(
2
,i
+
1
):
12.
print
(
'%3d'
%
j, end
=
' '
)
13.
# linha seguinte
14.
print
()
Et voilá!
Sem comentários:
Enviar um comentário