C言語を学ぼう!「PBR、PER、ROE、配当利回りを計算して表示するプログラム」

スポンサーリンク
C言語

突然であるが、FP2級の過去問に以下のような問題がある。

問題 25
下記<X社のデータ>に基づき算出される投資指標に関する次の記述のうち、最も不適切なものはどれか。

1.PBRは、2.0倍である。
2.PERは、10.0倍である。
3.ROEは、5.0%である。
4.配当利回りは、5.0%である。

ファイナンシャル・プランニング技能検定 2級 学科試験(2025年5月25日実施)

正解:3

今回は、この問題をC言語のプログラムで解いてみよう。

//PBR、PER、ROE、配当利回りを計算して表示するC言語プログラム

#include <stdio.h>

int main(void) {
    // ユーザー入力用変数(株価は円単位、他は億単位)
    int stock_price;                      // 株価(円)
    double net_income_oku;                // 当期純利益(億円)
    double equity_oku;                    // 自己資本(億円)
    double dividend_total_oku;            // 配当金総額(億円)
    double shares_outstanding_oku;        // 発行済株式数(億株)

    // 入力受付

    puts("PBR、PER、ROE、配当利回りを計算して表示します。");
    puts("株価,当期純利益,自己資本,年間配当金総額,発行済株式数を入力してください。");

    printf("株価(円): ");
    scanf("%d", &stock_price);

    printf("当期純利益(億円): ");
    scanf("%lf", &net_income_oku);

    printf("自己資本(億円): ");
    scanf("%lf", &equity_oku);

    printf("年間配当金総額(億円): ");
    scanf("%lf", ÷nd_total_oku);

    printf("発行済株式数(億株): ");
    scanf("%lf", &shares_outstanding_oku);

    // 単位変換(億→円、億株→株)
    double net_income = net_income_oku * 1e8;
    double equity = equity_oku * 1e8;
    double dividend_total = dividend_total_oku * 1e8;
    double shares_outstanding = shares_outstanding_oku * 1e8;

    // 1株あたりの指標
    double bps = equity / shares_outstanding;
    double eps = net_income / shares_outstanding;
    double dividend_per_share = dividend_total / shares_outstanding;

    // 投資指標の計算
    double pbr = stock_price / bps;
    double per = stock_price / eps;
    double roe = (net_income / equity) * 100;
    double dividend_yield = (dividend_per_share / stock_price) * 100;

    // 入力内容の表示
    printf("\n--- 入力内容 ---\n");
    printf("株価(円)             : %d\n", stock_price);
    printf("当期純利益(億円)     : %.1f\n", net_income_oku);
    printf("自己資本(億円)       : %.1f\n", equity_oku);
    printf("年間配当金総額(億円) : %.1f\n", dividend_total_oku);
    printf("発行済株式数(億株)   : %.1f\n", shares_outstanding_oku);

    // 結果表示
    printf("\n--- 投資指標 ---\n");
    printf("PBR(株価純資産倍率) : %.1f 倍\n", pbr);
    printf("PER(株価収益率)     : %.1f 倍\n", per);
    printf("ROE(自己資本利益率) : %.1f %%\n", roe);
    printf("配当利回り             : %.1f %%\n", dividend_yield);

    return 0;
}

実行例

PBR、PER、ROE、配当利回りを計算して表示します。
株価,当期純利益,自己資本,年間配当金総額,発行済株式数を入力してください。
株価(円): 1000
当期純利益(億円): 200
自己資本(億円): 1000
年間配当金総額(億円): 100 
発行済株式数(億株): 2

--- 入力内容 ---
株価(円)             : 1000
当期純利益(億円)     : 200.0
自己資本(億円)       : 1000.0
年間配当金総額(億円) : 100.0
発行済株式数(億株)   : 2.0

--- 投資指標 ---
PBR(株価純資産倍率) : 2.0 倍
PER(株価収益率)     : 10.0 倍
ROE(自己資本利益率) : 20.0 %
配当利回り             : 5.0 %

本問の解説は以下のブログ記事を参照してください。

コメント

タイトルとURLをコピーしました