Você está na página 1de 3

UNIVERSIDADE FEDERAL DE MINAS GERAIS

INSTITUTO DE CIÊNCIAS EXATAS


DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Programação de Computadores – Prof. Helton

Avaliação Formativa 4 – Estrutura de repetição

Estrutura de repetição permite que um bloco de comandos seja executado repetidamente até
que uma condição seja satisfeita e interrompa a repetição. Por exemplo, imagine um
programa que leia as notas de três provas dos alunos de uma turma, calcule a media de cada
um e imprima. O processo de ler cada nota, calcular a soma das três notas, calcular a média e
imprimir deverá ser repetido para cada aluno da turma. Ele só será interrompido quando tiver
processado as notas de todos os alunos, isto é, condição de interrupção ocorrerá quando não
houver mais notas para serem lidas.

A linguagem algorítmica, ou Pseudo-Código, que usamos neste curso define uma estrutura
para se construir este tipo de repetição: chama-se repita-fim_repita. No quadro abaixo
mostra-se a sintaxe desta estrutura na linguagem algorítmica e a corresponde sintaxe em
Python. Observe a margem de quatro colunas deixadas em Python para definir o escopo do
comando de repetição while.

Linguagem algorítmica Python


repita while True:
<comando 1> <comando 1>
<comando 2> <comando 2>
.............. ..............
se <condição> if <condição>:
então interrompa break
fim se ..............
.............. <comando n-1>
<comando n-1> <comando n>
<comando n>
fim repita

O exemplo para cálculo da media das notas dos alunos poderia ser resolvido assim:

Linguagem algorítmica Python


repita while True:
leia nota1, nota2, nota3 nota1 = float(input( "nota 1:" ))
média = (nota1+nota2+nota3)/3 nota2 = float(input( "nota 2:" ))
se media = 0 nota3 = float(input( "nota 3:" ))
então interrompa média = (nota1+nota2+nota3)/3
fim se if média == 0:
escreva média break
fim repita print( f"Média: {média:4.1f}\n" )
escreva “Programa executado com sucesso” print( "Programa executado com sucesso" )
Desafio 1

Estude a solução mostrada acima e responda às seguintes questões:


1. Qual é a condição de interrupção da repetição?
2. Que entradas de dados são necessárias para que a condição seja satisfeita?
Teste o programa, fornecendo dados escolhidos por você.

Apresente o relatório com o formato já utilizado anteriormente. Escreva uma descrição


sucinta do problema, o algoritmo dado, o texto em Python, os dados que você utilizou nos
testes e os resultados obtidos.

Desafio 2
Para calcular o valor numérico de uma série calcula-se sucessivamente o termo da série e faz-
se a soma (ou a subtração) do termo ao valor da série. Em outras palavras acumula-se a soma
de um número infinito de termos da série.
Como não podemos obter soma exata de todos os infinitos termos da série, contentamos com
um valor aproximado. Para obter um valor aproximado da série, é preciso interromper a soma
depois de um certo número de termos, ou seja, desprezar os valores que seriam somados
pelos demais termos até o infinito. Ao interromper a soma, obtemos um valor aproximado e
cometemos um erro de precisão do valor da série.
Felizmente, ao analisar os termos da série, observamos (pelo menos em alguns casos) que o
termo vai se tornando cada vez menor. Por exemplo, mande imprimir no interpretador do
Python, os valores de alguns dos termos da série mostrada abaixo: - 4/3, 4/5, -4/7, 4/13.
Anote os valores obtidos, coloque-os no relatório e comente o que você observar.

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. E
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 o
resto, 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 valor de  é dado por:

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.

Você também pode gostar