Saltar a contenido

Crédito Hipotecario

La cuota mensual m que se debe pagar en un crédito hipotecario por un capital inicial h a un plazo de n años, utilizando un interés compuesto de i% anual está dada por:

m=hr1(1+r)12n,

donde

r=i10012
  1. Escriba la función cuota_mensual que calcula la cuota mensual para un capital inicial, un plazo y una tasa de interés dados, redondeado a 2 decimales. Ej: para $50.000.000, 15 años y 4,75%, debe entregar $388.915,96 (todo como números, sin $ ni %).
  2. Escriba la función monto_total que calcula el monto total que se pagará en el total en el crédito. Para el ejemplo sería: $70.004.872,8
  3. Escriba la función intereses_pagados que calcula el monto total por intereses que se pagará en todo el crédito. Para el ejemplo sería: $20.004.872,8
  4. Escriba la función porcentaje_intereses que calcula el porcentaje del capital inicial que se pagará en intereses en todo el crédito. Para el ejemplo sería: 40,01%
  5. Escriba un programa que para un capital inicial y una tasa de interés dados, muestre los valores de cuota mensual, monto total a pagar y porcentaje que se pagará en intereses, para un rango de plazos (años). Por ejemplo de 10 a 25:
    10 524238.72 62908646.4 25.82 
    11 487057.28 64291560.96 28.58 
    12 456199.58 65692739.52 31.39 
    ...
    25 285058.68 85517604.0 71.04
    
Solución
def cuota(h, n, i):
   r = i / (1200)
   m = h * r / (1 - (1 + r)**(-12 * n))
   return round(m, 2)

def monto_total(h, n, i):
   return round(n * 12 * cuota(h, n, i), 2)

def intereses_pagados(h, n, i):
   return round(monto_total(h,n,i) - h, 2)

def porcentaje_intereses(h,n,i):
   return round(100 * intereses_pagados(h,n,i) / h, 2)

# Datos
h = 50000000
n = 15
i = 4.75

# Preguntas 1-4
print(cuota(h,n,i))
print(monto_total(h,n,i))
print(intereses_pagados(h,n,i))
print(porcentaje_intereses(h,n,i))

# Pregunta 5
n = 10
while n <= 25:
   print(n, cuota(h,n,i), monto_total(h,n,i), porcentaje_intereses(h,n,i))
   n += 1