Buscar

EXERCÍCIOS DE PROGRAMAÇÃO ARITMÉTICA DE PONTO FLUTUANTE E EQUAÇÕES

Prévia do material em texto

EXERCÍCIOS DE PROGRAMAÇÃO 
ARITMÉTICA DE PONTO FLUTUANTE E EQUAÇÕES 
 
 
1. Precisão da Máquina 
 
Define-se como precisão da máquina o menor número positivo em aritmética de ponto 
flutuante,  , tal que   .11   Este número é importante, pois em vários algoritmos se 
faz necessário fornecer como dado de entrada um valor positivo, próximo de zero, para 
ser usado em testes de comparação. Apresenta-se a seguir um algoritmo em 
pseudocódigo para determinar a precisão da máquina para um computador binário: 
 
Início 
 Epsilon = 1; 
 Enquanto (epsilon + 1 > 1) Faça 
 início 
 Epsilon = Epsilon/2; 
 Fim; 
 Epsilon = 2 * Epsilon; 
 Escreva(“Epsilon = “, Epsilon). 
Fim 
 
Pede-se: 
a) Implementar o algoritmo anterior em C, declarando-se todas as variáveis como 
sendo de precisão simples. Executar o programa obtido para determinar o valor 
de epsilon da máquina. 
b) Como em (a), mas declarando todas as variáveis como sendo de precisão dupla. 
 
 
2. Considere a seguinte variação do algoritmo anterior: 
 
Início 
 Epsilon = 1; 
 Escreva(“Entre com um valor inteiro: “): 
 Leia(Valor); 
 Enquanto (Epsilon + Valor > Valor) Faça 
 início 
 Epsilon = Epsilon/2; 
 fim 
 Epsilon = 2 * Epsilon; 
 Escreva(“Epsilon = “, Epsilon). 
Fim 
 
Pede-se implementar o algoritmo modificado em C e executar o programa resultante 
para cada um dos valores constantes da tabela a seguir, completando-se a tabela com os 
valores calculados pelo programa para Epsilon, para cada um dos valores fornecidos: 
 
Valor Epsilon 
1 
10 
17 
100 
184 
1000 
1575 
10000 
17893 
 
Apresentar uma explicação para a variação observada nos valores de Epsilon na tabela 
acima. 
 
 
3. Implementar um programa em C para calcular o valor de S a partir da expressão: 
 



n
k
xS
1
10000 
 
considerando: a) 100000n e 1.0x ; b) 80000n e 125.0x . 
 
 
4. Implementar em C o algoritmo do Método da Iteração Linear. Escolher uma equação 
transcendente para a codificação do programa. Implementar a função de iteração como 
uma função da linguagem C. O programa deverá gerar saída também dos valores de p 
(ordem de convergência) calculados de forma aproximada. Gerar saídas com um 
número de casas decimais apropriado. 
 
 
5. Implementar em C o algoritmo do Método de Newton Raphson. Escolher uma 
equação transcendente para a codificação do programa. Implementar os cálculos da 
função e de sua derivada como funções separadas da linguagem C. O programa deverá 
gerar saída também dos valores de p (ordem de convergência) calculados de forma 
aproximada. Gerar saídas com um número de casas decimais apropriado. 
 
 
6. Implementar em C o Método das Secantes. Escolher uma equação transcendente para 
a codificação do programa. O programa deverá gerar saída também dos valores de p 
(ordem de convergência) calculados de forma aproximada. Gerar saídas com um 
número de casas decimais apropriado. 
 
 
7. Implementar em C o Método de Birge-Vieta. Os coeficientes da equação algébrica 
deverão ser solicitados e lidos em tempo de execução. Os cálculos de )(xP e de )(xP 
deverão ser efetuadas por funções da linguagem C, e os cálculos devem ser efetuados 
utilizando o método de Briot-Ruffini. Não é necessário incluir na implementação a regra 
de Descartes e o método de Laguerre. O programa deverá iniciar os cálculos a partir de 
um valor de 0x fornecido. 
 
 
Atenção: o trabalho pode ser feito em grupos com até 4 alunos por grupo. Os programas 
em C não deverão ser desenvolvidos como projetos. Todos os programas desenvolvidos 
deverão ser copiados para uma única pasta, tendo como nome (a pasta) o nome dos 
elementos do grupo e esta pasta deverá ser compactada (“winzipada”) e postada no 
Moodle. Todos os programas devem incluir os nomes dos elementos do grupo na forma 
de comentários. TODOS OS INTEGRANTES DO GRUPO DEVEM POSTAR A 
RESOLUÇÃO DA LISTA NO Moodle. 
 
 
Referência dos exercícios 1, 2 e 3: [Ruggiero e Lopes, 1996]

Continue navegando