01.
def
harmonica_erro(erro):
02.
""" Calcula valor da série harmónica com erro inferior ao dado."""
03.
soma
=
0
04.
denominador
=
1.0
05.
while
True
:
06.
nova_soma
=
soma
+
1.0
/
denominador
07.
if
nova_soma
-
soma < erro:
08.
return
nova_soma
09.
soma
=
nova_soma
10.
denominador
=
denominador
+
1
A solução apresentada tem por base um ciclo que vai sendo executado até se atingir o objectivo do erro máximo. Na realidade criámos um aparente ciclo infinito (a condição de saída nunca é falsa). Aparente porque o comado return permite sair do ciclo. Mais ainda: permite sair do programa! Notar também que sendo o numerador fixo (vale sempre 1) optou-se por gerar apenas o denominador. Por se tratar de uma divisão, tivemos que ter o cuidado de usar um float (1.0). Finalmente deve-se analisar o modo como temos sempre dois calores consecutivos associados às variáveis soma e nova_soma.
Sem comentários:
Enviar um comentário