Escolar Documentos
Profissional Documentos
Cultura Documentos
AF800Desafio2Orientacoes - Python
AF800Desafio2Orientacoes - Python
Antes de entregar, confira na descrição original o que foi dado e o que deverá ser
entregue.
Ao suspender a soma da série a partir de determinado termo, podemos dizer que vamos
cometer um erro inferior ao valor absoluto do termo abandonado, pois a partir deste
ponto tudo que for somado será menor que o valor do termo abandonado.
Resumindo, o erro cometido será inferior ao valor absoluto do primeiro termo abandonado. Já
o valor “exato” de uma série seria igual á soma dos infinitos termos da série. Como isso não
é possível de ser executado soma-se um determinado numero de termos e abandona-se
os demais, o que gera um erro em relação ao valor “exato”. Esse erro define a precisão do
valor calculado.
Como os termos diminuem em valor absoluto, os valores dos termos desprezados alteram
apenas as casas decimais de mais baixa ordem. Por exemplo, se o termo abandonado for igual
a 0,00012 ao soma-lo à série o valor será alterado a partir da quarta casa decimal, logo o erro
é inferior a 0,00012.
Projete um algoritmo e o respectivo programa em Python que calcule o valor do número
obtido a partir da série:
O que se deseja aqui é escrever um algoritmo que crie cada um dos termos da série e faça a
soma (ou a subtração) do termos gerados para obter o valor de s.
Observe que é uma repetição – em cada passo da repetição é gerado o próximo termo da
série. O termo gerado pode ser somado, ou subtraído do valor de s. Veja que a soma e a
subtração são alternadas.
A questão é: quando e como interromper a repetição? Resposta rápida: verificando se o termo
que acabou de ser gerado é menor (em valor absoluto) que o valor da precisão desejada.
Por exemplo: suponha que desejamos obter o valor da série com precisão de 10-2.
Termo da série
Primeiro 1/13 1,000
Segundo 1/33 0,111
Terceiro 1/53 0,008
Observe que o Terceiro termo é menor que 10-2, logo não precisamos calcular os próximos
termos e o nosso resultado terá um erro menor que 10-2, ou seja, uma precisão da ordem de
10-2.
Então, a condição para interromper o processo de repetição é que o valor do termo recém
calculado seja menor que o valo da precisão desejada.
Algoritmo
Declare variáveis
Inicie as variáveis
Calcule o primeiro termo
repita
se o valor absoluto do termo for menor que a precisão
Então interrompa
fim se
Acumule o termo da série
Calcule o próximo termo
fim repita
Calcule o valor de
Escreva resultados
Fim algoritmo
Uma dica: como a soma e subtração dos termos são alternadas, crie uma variável antes do
repita e atribua a ela o valor 1. Dentro do repita multiplique a variável pelo valor do termo
para somar. Em seguida atribua à variável o valor –variável. Assim a cada repetição está
variável terá o valor 1, ou -1, e ao multiplicar pelo termo e somar, as operações de soma e
subtração serão alternadas.
Teste o programa para obter com precisões da ordem de 10-3, 10-8, 10-12.
Pergunta: O que acontece com o tempo de cálculo quando se diminui a precisão para cálculo
da série? Explique por que isso acontece.
Em cada teste, o programa deverá imprimir o valor calculado de , o número de termos que
foram gerados e somados à série e o valor do último termo gerado.
A classe (ou biblioteca) math define a constante math.pi. Inclua no programa a impressão da
diferença entre esta constante e o valor calculado pela série, em cada teste.
No relatório coloque:
1. A descrição sucinta do desafio.
2. O algoritmo final do programa,
3. O texto do programa Python correspondente,
4. Os resultados obtidos no interpretador para os termos - 4/3, 4/5, -4/7, 4/13.
5. Os resultados obtidos com as precisões de 10-3, 10-8, 10-12 (valor obtido, numero de
termos, o último termo, e a diferença entre a constante math.pi e o valor calculado)
6. A resposta sobre a questão do tempo e a justificativa pertinente.
7. Outros comentários e observações que você julgar pertinente.
Desafio 2
Projete um algoritmo e um programa em Python que gere uma tabela que mostre centigrados
variando de 1 a 100, de 8 em 8 graus, e os valores correspondentes em Farenheit. A
conversão pode ser obtida a partir da fórmula: c f 32 , onde f representa graus em
5
9
Farenheit e c representa centigrados.