WPROWADZENIE

W kredycie hipotecznym wysokość raty którą spłacamy oblicza się sumując część kapitałową i odsetkową:

rata = kapitał + odsetki

W kredycie hipotecznym z ratami malejącymi, wysokość części kapitałowej i odsetkowej jest różna w każdej kolejnej racie. 

Wysokość tej raty zależy od pozostałej kwoty do spłaty oraz liczby pozostałych rat. Część odsetkowa jest obliczana na podstawie aktualnej kwoty do spłaty i oprocentowania, natomiast część kapitałowa jest obliczana jako różnica między całkowitą ratą a częścią odsetkową. Wraz z upływem czasu, część odsetkowa maleje, a część kapitałowa rośnie, co powoduje, że rata jest coraz mniejsza.

Dla kredytobiorcy każda rata którą płaci ma taką samą wysokość. Zmienia się w niej jednak część kapitałowa (która z miesiąca na miesiąc jest coraz wyższa) i część odsetkowa (jest coraz niższa).

Oznacza to, że na początku spłaty kredytu w każdej racie spłaca się bardzo dużo odsetek, a spłata samego zadłużenia stoi prawie w miejscu. W miarę upływu czasu sytuacja się odwraca i pod koniec okresu spłaty kredytu zadłużenie bardzo szybko maleje.

Wysokość rat obliczamy ze wzoru: $R=K \cdot \frac{p(1+p)^n}{(1+p)^n-1}$ gdzie:

  • R – płatność ratalna (wysokość raty, którą spłacamy),
  • K – kwota początkowa kredytu,
  • p – wysokość oprocentowania kredytu (dla jednego okresu n),
  • n – liczba rat.

KOD W JĘZYKU PYTHON

!pip install xlwt

import xlwt

kwota_kredytu = float(input("Podaj kwotę kredytu: "))
liczba_rat = int(input("Podaj liczbę rat: "))
oprocentowanie = float(input("Podaj oprocentowanie, np. jeśli wynosi 9%, zapisz 0.09: "))

rata = kwota_kredytu * ((oprocentowanie/12) * (1 + (oprocentowanie/12))**liczba_rat) / ((1 + (oprocentowanie/12))**liczba_rat - 1)
tabela_rat = []
pozostala_kwota = kwota_kredytu

for i in range(1, liczba_rat+1):
    odsetki = pozostala_kwota * oprocentowanie / 12
    czesc_kapitalowa = rata - odsetki
    pozostala_kwota -= czesc_kapitalowa
    tabela_rat.append((i, round(rata, 2), round(czesc_kapitalowa, 2), round(odsetki, 2), round(pozostala_kwota, 2)))

print("Nr raty | Wysokość raty | Część kapitałowa | Część odsetkowa | Pozostała kwota")
for numer, wysokosc_raty, czesc_kapitalowa, odsetki, pozostala_kwota in tabela_rat:
    print(f"{numer:>7} | {wysokosc_raty:>13} | {czesc_kapitalowa:>16} | {odsetki:>16} | {pozostala_kwota:>15}")

book = xlwt.Workbook(encoding="utf-8")
sheet1 = book.add_sheet("Tabela rat")

sheet1.write(0, 0, "Nr raty")
sheet1.write(0, 1, "Wysokość raty")
sheet1.write(0, 2, "Część kapitałowa")
sheet1.write(0, 3, "Część odsetkowa")
sheet1.write(0, 4, "Pozostała kwota")

for row, (numer, wysokosc_raty, czesc_kapitalowa, odsetki, pozostala_kwota) in enumerate(tabela_rat, start=1):
    sheet1.write(row, 0, numer)
    sheet1.write(row, 1, wysokosc_raty)
    sheet1.write(row, 2, czesc_kapitalowa)
    sheet1.write(row, 3, odsetki)
    sheet1.write(row, 4, pozostala_kwota)

book.save("tabela_rat.xls")
print("Tabela rat została zapisana do pliku tabela_rat.xls.")

⬆️⬆️⬆️ Zobacz w Google Colaboratory


JAK DZIAŁA PROGRAM?

  1. Instalacja dodatkowego modułu, z którego zostanie pobrana biblioteka xlwt
  2. Import biblioteki xlwt służącej do eksportu danych do pliku .xls
  3. Pobieranie danych od użytkownika – kwoty kredytu, liczby rat oraz oprocentowania.
  4. Obliczenie wartości miesięcznej raty kredytu na podstawie podanych danych.
  5. Utworzenie pustej tabeli rat i zmiennej pozostala_kwota równiej kwocie kredytu.
  6. Wygenerowanie w pętli for tabeli rat zawierającej numer raty, wysokość raty, część kapitałową, część odsetkową oraz pozostałą kwotę do spłacenia po każdej racie.
  7. Wyświetlenie tabeli rat w konsoli.
  8. Utworzenie pliku arkusza kalkulacyjnego, dodanie arkusza do pliku, wpisanie nagłówków kolumn do arkusza, wpisanie wartości z tabeli rat do arkusza.
  9. Zapis pliku .xls
  10. Wyświetlenie komunikatu o zapisaniu pliku .xls.