Baixe o app para aproveitar ainda mais
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) 100000n e 1.0x ; b) 80000n e 125.0x . 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]
Compartilhar