fany_gms
(usa Outra)
Enviado em 07/01/2020 - 12:01h
Alguém poderia me da um help nessa questão me explicando pelo menos o que o professor está querendo, tentei fazer o algoritmo com os dados que ele me deu mas nao esta dando certo.
Problema 2
Agora escreva um programa que calcule o pagamento mínimo mensal fixo necessário para pagar a dívida do cartão dentro de 12 meses. Nós não lidaremos com uma taxa de pagamento mínimo mensal.
Defina como raw_input() os seguintes valores flutuantes:
1. A dívida total do cartão de crédito 2. Taxa de juros anual em decimal
Mostre na tela o pagamento mínimo mensal fixo, número de meses (no máximo 12 e possivelmente menos que 12) que levará para pagar essa dívida e a dívida final (provavelmente será um valor negativo).
Suponha que os juros sejam compostos de acordo com a dívida no começo do mês (antes que o pagamento para esse mês seja feito). O pagamento mensal deve ser um múltiplo de R$10,00 e ser o mesmo para todos os meses. Note que é possível que a dívida seja negativa usando esse esquema de pagamento:
Taxa de juros mensais = Taxa de juros anual / 12
Dívida atualizada de cada mês = Dívida anterior * (1 + Taxa de juros mensal) - Pagamento mínimo mensal
Caso de teste 1
Apersente a dívida total do cartão de crédito: 1200
Apresente a taxa de juros anual do cartão de crédito em decimal: .18
RESULTADO
Pagamento mensal para pagar dívida em 1 ano: 120
Número de meses necessários: 11
Dívida restante: -10.05
Caso de teste 2
Apersente a dívida total do cartão de crédito: 32000
Apresente a taxa de juros anual do cartão de crédito em decimal: .2
RESULTADO
Pagamento mensal para pagar dívida em 1 ano: 2970
Número de meses necessários: 12
Dívida restante: -74.98
Dicas
Comece com pagamentos de R$10,00 e calcule se a dívida será paga dentro do prazo (levando em consideração os juros mensais). Se R$10,00 não forem o suficiente aumente o pagamento mensal em mais R$10,00 e repita até achar o valor.
Usando a busca em bissecção para deixar o programa mais eficiente
Você notará que no Problema 2, seu pagamento mensal tinha que ser um múltiplo de R$10,00. Por que fizemos desse jeito? Em um arquivo separado você pode alterar seu programa para que o pagamento seja de qualquer valor (em outras palavras, ele seria um múltiplo de R$0,01). Seu programa ainda funcionará? Provavelmente sim, mas você pode notar que ele leva muito mais tempo para resolver o problema, principalmente quando se depara com dívidas e taxas muito grandes.
Como podemos deixar o programa mais rápido? Podemos usar o método da bissecção
Estamos procurando pelo menor valor de pagamentos mensais para que possamos pagar a dívida dentro de um ano. Que valor podemos definir como o limite inferior? Podemos usar R$0,00, mas você pode fazer melhor do que isso. Se não houvessem juros, a dívida poderia ser quitada pagando mensalmente 1/12 do valor total, então temos que pagar no mínimo isso. 1/12 do valor da dívida é um bom limite inferior.
E um bom limite superior? Imagine que ao invés de pagar mensalmente, nós pagamos a dívida inteira no fim do ano. Nosso último pagamento deve ser maior que o que pagaríamos em prestações mensais, pois os juros serão compostos em cima da dívida que deixamos de pagar cada
mês. Então um bom limite superior seria 1/12 do valor, depois de ter seus juros aplicados à dívida mensalmente por um ano inteiro.
Resumindo:
Limite inferior do pagamento mensal = Dívida/12
Limite superior do pagamento mensal = (Dívida * (1 + (Taxa de juros mensais / 12)) * 12)/12