01.
import
cTurtle
02.
03.
def
le_ficheiro(nome):
04.
f_in
=
open(nome,
'r'
)
05.
dados
=
[]
06.
linha
=
f_in.readline()
07.
while
linha !
=
'
' and linha != '
\n':
08.
pos
=
linha[:
-
1
].split()
09.
dados.append((int(pos[
0
]), int(pos[
1
])))
10.
linha
=
f_in.readline()
11.
12.
f_in.close()
13.
return
dados
14.
15.
16.
def
analisa_frequencias(dados):
17.
frequencias
=
{}
18.
for
par
in
dados:
19.
for
i
in
range(
2
):
20.
frequencias[par[i]]
=
frequencias.get(par[i],
0
)
+
1
21.
return
frequencias
22.
23.
24.
def
desenha_coluna(tartaruga, numero, altura):
25.
x
=
(numero
-
1
)
*
20
# para começar no inicio do eixo
26.
y
=
altura
*
10
27.
28.
# escrever número no eixo
29.
tartaruga.up()
30.
tartaruga.goto(x
+
5
,
-
20
)
31.
tartaruga.down()
32.
tartaruga.write(str(numero), move
=
False
, align
=
'left'
, font
=
(
'Arial'
,
18
,
'normal'
))
33.
34.
#desenhar coluna
35.
tartaruga.up()
36.
tartaruga.goto(x
+
2
,
0
)
37.
tartaruga.down()
38.
tartaruga.goto(x
+
2
,y)
39.
tartaruga.goto(x
+
18
,y)
40.
tartaruga.goto(x
+
18
,
0
)
41.
42.
# escrever número da frequência
43.
tartaruga.up()
44.
tartaruga.goto(x
+
5
,y
+
5
)
45.
tartaruga.down()
46.
tartaruga.write(str(altura), move
=
False
, align
=
'left'
, font
=
(
'Arial'
,
10
,
'normal'
))
47.
48.
49.
def
visualiza_frequencias(tartaruga,frequencias):
50.
# desenhar eixo dos x
51.
tartaruga.up()
52.
tartaruga.goto(
0
,
0
)
53.
tartaruga.down()
54.
tartaruga.goto(
20
*
6
,
0
)
55.
56.
# desenhar frequências
57.
for
i
in
range(
1
,
7
):
58.
desenha_coluna(tartaruga,i,frequencias.get(i))
59.
60.
tartaruga.hideturtle()
61.
62.
63.
def
main613(ficheiro):
64.
# Leitura dos dados
65.
pares
=
le_ficheiro(ficheiro)
66.
# Análise de frequências
67.
frequencias
=
analisa_frequencias(pares)
68.
# Visualização de frequências
69.
tartaruga
=
cTurtle.Turtle()
70.
visualiza_frequencias(tartaruga,frequencias)
71.
tartaruga.exitOnClick()
A leitura de dados a partir de um ficheiro já é uma questão resolvida em problemas anteriores. Segue-se depois a contagem do número de ocorrências. Usamos um dicionário em que a chave é o número e o valor é igual ao número de vezes que ocorreu. A visualização é desdobrada em duas operações: uma, permite desenhar uma coluna e é usada por outra definição (visualiza_frequências) que percorre com um ciclo for os 6 números, imprimindo a coluna correspondente. Note-se o uso do comando de escrita de texto na tela e as suas opções (write).
Só falta transcrever o programa, executar e ... visualizar!
Sem comentários:
Enviar um comentário