VisualG

Preciso de uma ajuda com o seguinte exercício no VisualG: Desenvolva um algoritmo que recebe um valor, o dia do vencimento e o dia do pagamento. Considerando uma taxa de juros composto de 0,12% ao dia, calcule o valor a ser pago na data de pagamento.

Não estou conseguindo resolver.

O que já fez?

Ja fiz isso…
algoritmo "TaxaJurosComposto"
var
valor, taxa, data_venc, data_paga, resul: real
inicio
//Entrada
Escreva ("Informe o valor a ser pago: ")
leia(valor)
Escreva ("Informe o dia do vencimento: ")
leia(data_venc)
Escreva ("Informe o dia do pagamento: ")
leia(data_paga)

//Processamento
taxa <- 0.012
data_paga <- data_paga - data_venc
resul <- valor * ((1 + taxa) ^ data_paga)

//Saída
Escreval("O valor a ser pago na data de pagamento é de: ", resul)

fimalgoritmo

Mas, tem um problema, quando eu digito esses valores:

Informe o valor a ser pago: 50
Informe o dia do vencimento: 30
Informe o dia do pagamento: 1
O valor a ser pago na data de pagamento é de: 35.3781518538067 <- (VALOR ERRADO)

Ele exibe nessa ultima linha um valor menor, no casso era para cobra um valor maior e não menor.

Você já reparou que o seu algoritmo não tem informação de mês ? Como ele vai saber se o dia do pagamento é depois do vencimento ?

1 curtida

como @rmendes08 disse, você não está controlando o mês (muito menos o ano) em que o pagamento é efetuado.
Este algoritmo é bastante complicado, pois exige que você faça uma série de cálculos, considerando dia, mês e ano (não necessariamente nesta ordem).
Afinal, pense nos seguintes cenários:
Vencimento Pagamento
31/01/2018 30/01/2018 -> Pago antes do vencimento
31/01/2018 31/01/2018 -> Pago no dia do vencimento
31/01/2018 01/02/2018 -> Pago após o vencimento, no mesmo ano
31/12/2017 01/03/2018 -> Pago após o vencimento, anos diferentes

Como vai tratar cada caso?

1 curtida