C 言語による住宅ローン返済額計算

CBeginner
オンラインで実践に進む

はじめに

この実験では、C プログラミングを使用して住宅ローン返済額を計算する方法を学びます。この実験では、元金、金利、返済回数を読み込む基本的な手順と、住宅ローン返済額計算式を適用して月々の返済額を決定する手順を網羅しています。この実験の終わりまでに、ユーザー入力に基づいて住宅ローン返済額を計算できる動作する C プログラムを作成します。

この実験では、新しい C ファイルの作成から、返済額の計算の実装、そして結果の出力まで、完全なプロセスをステップバイステップで説明します。この実践的な演習を通して、C プログラミングを用いた金融数学と利息計算のスキルを習得できます。

元金、金利、返済回数を読み込む

このステップでは、住宅ローン返済額の計算に必要な入力値である元金、金利、返済回数をどのように読み込むかを学びます。

まず、住宅ローン返済計算機用の新しい C ファイルを作成しましょう。

cd ~/project
nano mortgage_calculator.c

次に、入力値を読み込むコードを記述します。

#include <stdio.h>

int main() {
    double principal, rate;
    int num_payments;

    // 元金の入力を促し、読み込む
    printf("ローン元金を入力してください:");
    scanf("%lf", &principal);

    // 年利の入力を促し、小数で読み込む
    printf("年利を入力してください(小数で):");
    scanf("%lf", &rate);

    // 返済回数の入力を促し、読み込む
    printf("返済総回数を入力してください:");
    scanf("%d", &num_payments);

    // 入力値を出力して、正しく読み込まれたことを確認する
    printf("\nローン詳細:\n");
    printf("元金:$%.2f\n", principal);
    printf("年利:%.2f%%\n", rate * 100);
    printf("返済回数:%d回\n", num_payments);

    return 0;
}

プログラムをコンパイルして実行します。

gcc mortgage_calculator.c -o mortgage_calculator
./mortgage_calculator

実行例:

ローン元金を入力してください: 200000
年利を入力してください(小数で):0.05
返済総回数を入力してください: 360

ローン詳細:
元金: $200000.00
年利: 5.00%
返済回数: 360回

コードの詳細:

  • 元金と金利には、小数値を扱うために double を使用しています。
  • ユーザー入力を取得するために scanf() を使用しています。
  • double 値には %lf フォーマット指定子を使用しています。
  • 整数の返済回数には %d を使用しています。
  • 入力値を出力して、正しく読み込まれたことを確認しています。

返済額 = P*(R*(1+R)^N)/((1+R)^N -1)

このステップでは、前のステップで取得した入力値を使用して住宅ローン返済額計算式を実装します。

既存の mortgage_calculator.c ファイルを修正しましょう。

cd ~/project
nano mortgage_calculator.c

コードを修正して月々の返済額を計算します。

#include <stdio.h>
#include <math.h>

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // 月々の金利
    double monthly_rate = rate / 12;

    // 住宅ローン計算式を使用して返済額を計算
    double payment = principal *
        (monthly_rate * pow(1 + monthly_rate, num_payments)) /
        (pow(1 + monthly_rate, num_payments) - 1);

    return payment;
}

int main() {
    double principal, rate;
    int num_payments;

    // 元金の入力を促し、読み込む
    printf("ローン元金を入力してください:");
    scanf("%lf", &principal);

    // 年利の入力を促し、小数で読み込む
    printf("年利を入力してください(小数で):");
    scanf("%lf", &rate);

    // 返済回数の入力を促し、読み込む
    printf("返済総回数を入力してください:");
    scanf("%d", &num_payments);

    // 月々の返済額を計算
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // 入力値と計算された返済額を出力
    printf("\nローン詳細:\n");
    printf("元金:$%.2f\n", principal);
    printf("年利:%.2f%%\n", rate * 100);
    printf("返済回数:%d回\n", num_payments);
    printf("月々返済額:$%.2f\n", monthly_payment);

    return 0;
}

数学ライブラリを使用してプログラムをコンパイルします。

gcc mortgage_calculator.c -o mortgage_calculator -lm

プログラムを実行します。

./mortgage_calculator

実行例:

ローン元金を入力してください: 200000
年利を入力してください(小数で):0.05
返済総回数を入力してください: 360

ローン詳細:
元金: $200000.00
年利: 5.00%
返済回数: 360回
月々返済額: $1073.64

住宅ローン返済額計算式に関するポイント:

  • P は元金
  • R は月々の金利(年利を 12 で割ったもの)
  • N は返済総回数
  • pow() 関数は <math.h> から使用し、べき乗を計算します。
  • 数学ライブラリをリンクするために -lm をコンパイルオプションに追加します。

返済額の表示

この最終ステップでは、住宅ローン計算機を拡張して、詳細な返済内訳を表示し、出力の可読性を向上させます。

mortgage_calculator.c ファイルを修正して、より包括的な返済情報を追加しましょう。

cd ~/project
nano mortgage_calculator.c

改良された返済表示でコードを更新します。

#include <stdio.h>
#include <math.h>

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // 月々の金利
    double monthly_rate = rate / 12;

    // 住宅ローン計算式を使用して返済額を計算
    double payment = principal *
        (monthly_rate * pow(1 + monthly_rate, num_payments)) /
        (pow(1 + monthly_rate, num_payments) - 1);

    return payment;
}

void print_payment_details(double principal, double rate, int num_payments, double monthly_payment) {
    double total_payment = monthly_payment * num_payments;
    double total_interest = total_payment - principal;

    printf("\n--- 住宅ローン返済内訳 ---\n");
    printf("ローン元金:       $%10.2f\n", principal);
    printf("年利:             %10.2f%%\n", rate * 100);
    printf("返済総回数:       %d回\n", num_payments);
    printf("月々返済額:      $%10.2f\n", monthly_payment);
    printf("総返済額:       $%10.2f\n", total_payment);
    printf("総支払利息:      $%10.2f\n", total_interest);
}

int main() {
    double principal, rate;
    int num_payments;

    // 元金の入力を促し、読み込む
    printf("ローン元金を入力してください:");
    scanf("%lf", &principal);

    // 年利の入力を促し、小数で読み込む
    printf("年利を入力してください(小数で):");
    scanf("%lf", &rate);

    // 返済回数の入力を促し、読み込む
    printf("返済総回数を入力してください:");
    scanf("%d", &num_payments);

    // 月々の返済額を計算
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // 詳細な返済情報を表示
    print_payment_details(principal, rate, num_payments, monthly_payment);

    return 0;
}

プログラムをコンパイルします。

gcc mortgage_calculator.c -o mortgage_calculator -lm

プログラムを実行します。

./mortgage_calculator

実行例:

ローン元金を入力してください: 200000
年利を入力してください(小数で):0.05
返済総回数を入力してください: 360

--- 住宅ローン返済内訳 ---
ローン元金:        $  200000.00
年利:              5.00%
返済総回数:        360回
月々返済額:       $    1073.64
総返済額:        $  386510.40
総支払利息:       $  186510.40

主な改善点:

  • フォーマットされた出力を提供する新しい関数 print_payment_details() を追加しました。
  • 総返済額と総支払利息を計算しました。
  • 小数値を揃えるためのフォーマットを使用しました。
  • 住宅ローンの詳細な内訳を明確で読みやすいものにしました。

まとめ

この実験では、住宅ローンの返済額を計算するために必要な入力値(元金、金利、返済回数)の読み込み方法を学びました。これらの入力値を用いて住宅ローン返済計算式を実装し、月々の返済額を計算しました。最後に、計算された返済額を出力して結果を表示しました。

この実験で扱った主な手順は、ユーザーからの入力として元金、金利、返済回数を取得し、住宅ローン返済計算式を適用して月々の返済額を計算することです。このプログラムは、入力値が正しく取得され、ローン詳細と計算された返済額を明確な出力で提供することを保証します。