Escolar Documentos
Profissional Documentos
Cultura Documentos
INSTRUÇÕES:
4. Na data acima, cada grupo deverá entregar o código fonte (arquivo com extensão
.c) e um breve vı́deo explicativo. Neste vı́deo, você deverá explicar os pontos mais
importantes do código e a estratégia usada para resolver o problema. Cada vı́deo não
deve ultrapassar 3 minutos.
DE OLHO NO BOLSO
1. Introdução
Uma situação com a qual nos deparamos frequentemente quando vamos adquirir um bem de
consumo é saber qual é a taxa de juros embutida em um financiamento. Em geral, sabemos
somente o valor à vista do bem (Vbem ) e, caso optemos por um crediário, o número de
prestações n e o valor de cada prestação mensal Pk (1 ≤ k ≤ n). A taxa mensal de juros
j ≥ 0 não é revelada na maioria da vezes.
Vamos supor que todas as prestações possuem o mesmo valor P e que a primeira das
prestações é paga à vista, ou seja, a entrada do financiamento. Trazendo todas as prestações
vincendas para o presente, podemos escrever:
P P P
Vbem = P + + 2 + ... + = PS
1 + j (1 + j) (1 + j)n−1
onde definimos S pela somatória
1 1 1
S =1+ + 2 + ... +
1 + j (1 + j) (1 + j)n−1
Observe ainda que podemos simplificar o cálculo de S por
n
1
1−
1+j
S= se j > 0
1
1−
1+j
n se j = 0
2. Objetivos
Faça um programa que leia uma sequência de triplas (Vbem , n, P ) e que calcula, para cada
tripla, a taxa de juros j com uma precisão ( = 10−9 ) correspondente ao financiamento de
2
um bem de valor Vbem > 0 com n ≥ 1 prestações de valor P > 0. Parta das aproximações
P P
iniciais 0, 0.3 × e .
Vbem − P Vbem − P
Seu programa deve obrigatoriamente encerrar a execução quando o usuário digitar um va-
lor negativo (ver Exemplo de Saı́da). Não é permitido o uso de nenhuma função da biblioteca
math.h neste exercı́cio. Você deve implementar as funções de protótipo abaixo especificadas
que computam, respectivamente, os valores de: x elevado a n; a raiz quadrada positiva de
x com precisão ; o valor absoluto de x; a taxa de juros com precisão correspondente ao
financiamento de um bem de valor vbem com n prestações de valor prestacao; o erro relativo
de x em relação a y.
r0 = x
1 x
rn+1 = rn +
2 rn
O cálculo iterativo deverá ser executado enquanto a condição rn+1 − rn > for verdadeira.
Por fim, além das funções acima, você pode criar outras funções que julgar necessárias para
melhorar a legibilidade do programa e reduzir a complexidade do problema.
3. O método de Muller
1. Sejam xn−2 , xn−1 e xn , três aproximações distintas de uma raiz de f e seja a precisão
desejada. Se f é anulada em algum dos pontos, já encontramos a raiz. Caso contrário,
procuramos uma nova aproximação.
hi
2. Para ı́ndices apropriados i, sejam fi = f (xi ), hi = xi − xi−1 e qi =
hi−1
5. Seja C = (1 + qn ) fn
2C
6. Definindo q 0 = − √ ,
B+ B 2 − 4AC
3
2C
7. q” = − √ e
B− B 2 − 4AC
8. Seja qn+1 o elemento de {q 0 , q”} com menor valor absoluto
Repetimos o processo acima com as três últimas aproximações calculadas (xn−1 , xn , xn+1 )
até que a precisão desejada seja atingida, ou seja, até que:
4. Exemplos de saı́da
Valor do bem: 1000
Numero de prestacoes: 10
Valor da prestacao: 100
Juros = 0.0
Juros = 0.000999
Juros = 0.010007
Juros = 0.099999
Juros = 0.010002
Juros = 0.100005
Valor do bem: -1
FIM DO PROGRAMA