C 言語で将来価値の現在価値を計算する方法

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

はじめに

この実験では、C プログラミングを使用して将来の金額の現在価値を計算する方法を学びます。この実験では、財務パラメータ(将来価値、金利、期間)の読み込み、そして現在価値の公式を用いた現在価値の計算を含む、必須手順を網羅しています。この実験では、C で現在価値計算を理解し実装するためのステップバイステップのガイドとコード例を提供します。

この実験では、scanf() 関数を使用してユーザー入力を読み込み、倍精度浮動小数点数として格納し、次に以下の公式を使用して現在価値を計算する方法を示します。現在価値 (PV) = 将来価値 (FV) / (1 + 金利)^期間。計算された現在価値はその後コンソールに出力され、計算結果を確認することができます。

将来価値、金利、期間を読み込む

このステップでは、現在価値を計算するために必要な重要な財務パラメータ(将来価値、金利、期間)を読み込む方法を学びます。

まず、現在価値計算用の新しい C ファイルを作成します。

cd ~/project
nano present_value.c

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

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

int main() {
    double future_value, rate, time;

    printf("将来価値を入力してください:");
    scanf("%lf", &future_value);

    printf("年利率を入力してください(小数で):");
    scanf("%lf", &rate);

    printf("期間を入力してください(年):");
    scanf("%lf", &time);

    printf("入力値:\n");
    printf("将来価値:%.2f\n", future_value);
    printf("金利:%.2f%%\n", rate * 100);
    printf("期間:%.2f 年\n", time);

    return 0;
}

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

gcc -o present_value present_value.c -lm

プログラム実行時の例:

将来価値を入力してください: 1000
年利率を入力してください(小数で):0.05
期間を入力してください(年):3
入力値:
将来価値: 1000.00
金利: 5.00%
期間: 3.00 年

このコードは、以下の方法を示しています。

  • scanf() を使用して、将来価値、金利、期間のユーザー入力を取得する
  • 入力を倍精度浮動小数点数として格納する
  • 入力された値を出力して、正しい入力が確認できる

PV = FV/(1+R)^T

このステップでは、財務公式「現在価値 (PV) = 将来価値 (FV) / (1 + 金利)^期間」を使用して現在価値を計算します。

以前の present_value.c ファイルを修正して計算を含めます。

nano ~/project/present_value.c

現在価値計算を含めてコードを更新します。

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

int main() {
    double future_value, rate, time, present_value;

    printf("将来価値を入力してください:");
    scanf("%lf", &future_value);

    printf("年利率を入力してください(小数で):");
    scanf("%lf", &rate);

    printf("期間を入力してください(年):");
    scanf("%lf", &time);

    // 現在価値を計算
    present_value = future_value / pow((1 + rate), time);

    printf("\n計算結果:\n");
    printf("将来価値:%.2f\n", future_value);
    printf("金利:%.2f%%\n", rate * 100);
    printf("期間:%.2f 年\n", time);
    printf("現在価値:%.2f\n", present_value);

    return 0;
}

更新されたプログラムをコンパイルして実行します。

gcc -o present_value present_value.c -lm
./present_value

実行例:

将来価値を入力してください: 1000
年利率を入力してください(小数で):0.05
期間を入力してください(年):3

計算結果:
将来価値: 1000.00
金利: 5.00%
期間: 3.00 年
現在価値: 862.07

このコードの重要な点:

  • <math.h> から pow() 関数を使用して (1 + 金利)^期間 を計算する
  • 現在価値の公式 PV = FV / (1 + R)^T を実装する
  • 詳細な計算結果を表示する

現在価値の表示

このステップでは、現在価値計算プログラムを強化し、フォーマットされた出力とエラー処理を追加してユーザーエクスペリエンスを向上させます。

改良されたフォーマットと検証を含めて present_value.c ファイルを更新します。

nano ~/project/present_value.c

より良い出力フォーマットを含めるようにコードを修正します。

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

int main() {
    double future_value, rate, time, present_value;

    // 入力検証
    printf("現在価値計算機\n");
    printf("---------------------\n");

    printf("将来価値を入力してください(正の数):");
    if (scanf("%lf", &future_value) != 1 || future_value <= 0) {
        printf("エラー:無効な将来価値です。正の数を入力してください。\n");
        return 1;
    }

    printf("年利率を入力してください(小数で、例:0.05 は 5%):");
    if (scanf("%lf", &rate) != 1 || rate < 0) {
        printf("エラー:無効な金利です。非負の数を入力してください。\n");
        return 1;
    }

    printf("期間を入力してください(年、正の数):");
    if (scanf("%lf", &time) != 1 || time <= 0) {
        printf("エラー:無効な期間です。正の数を入力してください。\n");
        return 1;
    }

    // 現在価値を計算
    present_value = future_value / pow((1 + rate), time);

    // フォーマットされた出力
    printf("\n--- 現在価値計算 ---\n");
    printf("将来価値:$%.2f\n", future_value);
    printf("年利率:%.2f%%\n", rate * 100);
    printf("期間:%.2f 年\n", time);
    printf("現在価値:$%.2f\n", present_value);

    return 0;
}

更新されたプログラムをコンパイルして実行します。

gcc -o present_value present_value.c -lm
./present_value

実行例:

現在価値計算機
---------------------
将来価値を入力してください(正の数):1000
年利率を入力してください(小数で、例:0.05 は 5%):0.05
期間を入力してください(年、正の数):3

--- 現在価値計算 ---
将来価値:$1000.00
年利率:5.00%
期間:3.00 年
現在価値:$862.07

主な改善点:

  • 無効な入力を防ぐための入力検証を追加
  • 明確なラベルで出力フォーマットを強化
  • ユーザー入力のエラー処理を改善
  • 説明的なプロンプトと計算概要を追加

まとめ

この実験では、現在価値を計算するために必要な重要な財務パラメータ(将来価値、金利、期間)の読み取り方法を学びます。その後、財務公式「現在価値 (PV) = 将来価値 (FV) / (1 + 金利)^期間」を使用して現在価値を計算します。この実験では、C プログラミングを使用してユーザーに入力を促し、計算を実行し、結果の現在価値を表示する方法を示します。