Fortranで住宅ローン計算機を作ろう!

デジタルとコンピューター

住宅ローンを組むとき、「毎月の返済額はいくら?」「何年で完済できる?」といった計算が必要になります。
本記事では、Fortranを使って住宅ローンの計算ができるプログラムを作成し、毎月の返済額総支払額を求める方法を解説します。


住宅ローンの計算方法

住宅ローンの毎月の返済額(M)は、以下の元利均等返済の計算式を使って求められます。 M=P×r(1+r)N(1+r)N−1M = P \times \frac{r (1 + r)^N}{(1 + r)^N – 1}

変数の意味

  • M = 毎月の返済額
  • P = 借入金額(ローンの元本)
  • r = 月利(年利を12で割ったもの)
  • N = 返済回数(月数)(例:30年ローンなら N = 30 × 12 = 360

✅ この計算式をFortranで実装してみましょう!


住宅ローン計算プログラム(基本版)

💻 プログラム

program mortgage_calculator
  implicit none

  ! 変数の宣言
  real :: P, annual_rate, monthly_rate, M
  integer :: years, N

  ! ユーザー入力
  print *, "借入金額を入力してください(円): "
  read *, P
  print *, "年利率(%)を入力してください: "
  read *, annual_rate
  print *, "返済期間(年)を入力してください: "
  read *, years

  ! 計算用の変数
  N = years * 12  ! 返済回数(月)
  monthly_rate = (annual_rate / 100.0) / 12  ! 月利(年利を12で割る)

  ! 毎月の返済額の計算
  M = P * (monthly_rate * (1 + monthly_rate)**N) / ((1 + monthly_rate)**N - 1)

  ! 結果の出力
  print *, "毎月の返済額(円): ", M
  print *, "総支払額(円): ", M * N

end program mortgage_calculator

プログラムの解説

📌 変数の宣言

real :: P, annual_rate, monthly_rate, M
integer :: years, N
  • P(借入金額)
  • annual_rate(年利)
  • monthly_rate(月利 = annual_rate / 12
  • M(毎月の返済額)
  • years(返済期間(年))
  • N(返済回数(years * 12))

📌 ユーザーからの入力

print *, "借入金額を入力してください(円): "
read *, P
print *, "年利率(%)を入力してください: "
read *, annual_rate
print *, "返済期間(年)を入力してください: "
read *, years

💡 read * でユーザーが金額・金利・返済期間を入力できるようにする!


📌 返済額の計算

N = years * 12
monthly_rate = (annual_rate / 100.0) / 12

M = P * (monthly_rate * (1 + monthly_rate)**N) / ((1 + monthly_rate)**N - 1)

💡 monthly_rate は年利を12で割って求める
💡 N = years * 12 で総返済回数(月数)を求める


📌 計算結果の出力

print *, "毎月の返済額(円): ", M
print *, "総支払額(円): ", M * N

💡 総支払額 = 毎月の返済額 × 返済回数


実行例

💰 3000万円の住宅ローン、金利 1.5%、30年ローンの場合

借入金額を入力してください(円):
30000000
年利率(%)を入力してください:
1.5
返済期間(年)を入力してください:
30

毎月の返済額(円):   103515.7
総支払額(円):   37265652.0

✅ 毎月の返済額:約 103,515円
✅ 総支払額:約 3,726万円


さらに改良! 途中でローン残高を確認できるようにする

次に、各年ごとのローン残高を表示する機能を追加してみましょう!

💻 改良版プログラム

program mortgage_calculator_with_balance
  implicit none

  ! 変数の宣言
  real :: P, annual_rate, monthly_rate, M, balance, interest, principal
  integer :: years, N, i

  ! ユーザー入力
  print *, "借入金額を入力してください(円): "
  read *, P
  print *, "年利率(%)を入力してください: "
  read *, annual_rate
  print *, "返済期間(年)を入力してください: "
  read *, years

  ! 計算用の変数
  N = years * 12
  monthly_rate = (annual_rate / 100.0) / 12
  M = P * (monthly_rate * (1 + monthly_rate)**N) / ((1 + monthly_rate)**N - 1)

  ! 初期残高
  balance = P

  ! 結果の出力
  print *, "毎月の返済額(円): ", M
  print *, "総支払額(円): ", M * N
  print *, "年ごとのローン残高: "

  ! 年ごとのローン残高を計算
  do i = 1, years
    interest = balance * monthly_rate * 12  ! 1年間の利息
    principal = M * 12 - interest  ! 1年間の元金返済額
    balance = balance - principal  ! 新しい残高

    print *, "年", i, ": 残高(円)", balance
  end do

end program mortgage_calculator_with_balance

まとめ

Fortranで住宅ローン計算機を作れる!
基本版では、毎月の返済額と総支払額を計算!
改良版では、年ごとのローン残高も表示!

Fortranを使うと、シンプルなコードで金融計算を行うことができます。
🚀 ぜひ、自分の住宅ローンの試算に使ってみてください! 🚀

コメント