C 言語で台形の面積を計算する方法

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

はじめに

この実験では、C プログラミングを使用して台形の面積を計算する方法を学びます。この実験では、台形の 2 つの平行な辺の長さと高さを読み込み、次に以下の公式を使用して面積を計算する手順を扱います。面積 = 0.5 × (a+b) × h。プログラムはユーザーに必要な値を入力するように求め、その後、台形の面積を計算して表示します。

2 つの平行辺と高さを読み込む

このステップでは、C プログラミングで台形の面積を計算する準備として、台形の 2 つの平行辺の長さと高さを読み込む方法を学びます。

まず、台形の面積計算のための新しい C ファイルを作成しましょう。

cd ~/project
nano trapezoid_area.c

次に、平行辺の長さと高さを読み込むための以下のコードを追加します。

#include <stdio.h>

int main() {
    float side1, side2, height;

    // 1 つ目の平行辺の長さを入力するよう促す
    printf("1 つ目の平行辺の長さを入力してください:");
    scanf("%f", &side1);

    // 2 つ目の平行辺の長さを入力するよう促す
    printf("2 つ目の平行辺の長さを入力してください:");
    scanf("%f", &side2);

    // 高さを入力するよう促す
    printf("台形の高さを入力してください:");
    scanf("%f", &height);

    // 入力値を確認するために表示する
    printf("1 つ目の辺:%.2f\n", side1);
    printf("2 つ目の辺:%.2f\n", side2);
    printf("高さ:%.2f\n", height);

    return 0;
}

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

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

実行例:

1つ目の平行辺の長さを入力してください: 5
2つ目の平行辺の長さを入力してください: 7
台形の高さを入力してください: 3
1つ目の辺: 5.00
2つ目の辺: 7.00
高さ: 3.00
説明
  • 辺の長さや高さは、小数を含むため float を使用しています。
  • printf() を使用して、ユーザーに入力を促しています。
  • scanf() を使用して、ユーザーが入力した浮動小数点数を取得しています。
  • 入力値を表示することで、正しく取得できたことを確認しています。

面積 = 0.5*(a+b)*h を計算する

このステップでは、公式:面積 = 0.5 × (a+b) × h を使って台形の面積を計算する C プログラムを修正します。

既存のファイルを開いてコードを更新します。

cd ~/project
nano trapezoid_area.c

以前のコードを以下の実装に置き換えます。

#include <stdio.h>

int main() {
    float side1, side2, height, area;

    // 1 つ目の平行辺の長さを入力するよう促す
    printf("1 つ目の平行辺の長さを入力してください:");
    scanf("%f", &side1);

    // 2 つ目の平行辺の長さを入力するよう促す
    printf("2 つ目の平行辺の長さを入力してください:");
    scanf("%f", &side2);

    // 高さを入力するよう促す
    printf("台形の高さを入力してください:");
    scanf("%f", &height);

    // 台形面積の公式を使って面積を計算する
    area = 0.5 * (side1 + side2) * height;

    // 計算された面積を表示する
    printf("台形の面積:%.2f\n", area);

    return 0;
}

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

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

実行例:

1つ目の平行辺の長さを入力してください: 5
2つ目の平行辺の長さを入力してください: 7
台形の高さを入力してください: 3
台形の面積: 18.00
説明
  • 計算された面積を格納するための新しい変数 area を追加しました。
  • 0.5 * (side1 + side2) * height は台形の面積を計算します。
  • printf() は小数点以下 2 桁で計算された面積を表示します。
  • この計算は標準的な台形面積の公式:A = 0.5(a+b)h を使用しています。

面積の表示

このステップでは、ユーザーエクスペリエンスを向上させるために、書式設定された出力とエラー処理を追加して、台形面積計算プログラムを強化します。

既存のファイルを開いてコードを更新します。

cd ~/project
nano trapezoid_area.c

以前のコードを以下の実装に置き換えます。

#include <stdio.h>

int main() {
    float side1, side2, height, area;

    // 入力検証
    printf("台形面積計算機\n");
    printf("-------------------------\n");

    // 1 つ目の平行辺の長さを入力するよう促す
    printf("1 つ目の平行辺の長さを入力してください:");
    if (scanf("%f", &side1) != 1 || side1 <= 0) {
        printf("エラー: 1 つ目の辺の入力値が無効です。\n");
        return 1;
    }

    // 2 つ目の平行辺の長さを入力するよう促す
    printf("2 つ目の平行辺の長さを入力してください:");
    if (scanf("%f", &side2) != 1 || side2 <= 0) {
        printf("エラー: 2 つ目の辺の入力値が無効です。\n");
        return 1;
    }

    // 高さを入力するよう促す
    printf("台形の高さを入力してください:");
    if (scanf("%f", &height) != 1 || height <= 0) {
        printf("エラー: 高さの入力値が無効です。\n");
        return 1;
    }

    // 台形面積の公式を使って面積を計算する
    area = 0.5 * (side1 + side2) * height;

    // 結果の書式設定された出力
    printf("\n台形計算結果:\n");
    printf("-----------------------------\n");
    printf("1 つ目の辺: %.2f\n", side1);
    printf("2 つ目の辺:%.2f\n", side2);
    printf("高さ:     %.2f\n", height);
    printf("面積:       %.2f 平方単位\n", area);

    return 0;
}

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

gcc trapezoid_area.c -o trapezoid_area
./trapezoid_area

実行例:

台形面積計算機
-------------------------
1つ目の平行辺の長さを入力してください: 5
2つ目の平行辺の長さを入力してください: 7
台形の高さを入力してください: 3

台形計算結果:
-----------------------------
1つ目の辺:  5.00
2つ目の辺: 7.00
高さ:      3.00
面積:        18.00 平方単位
説明
  • 無効な入力を防ぐための入力検証を追加しました。
  • 見出しと明確なラベルで出力の書式設定を改善しました。
  • 不正な入力タイプに対するエラー処理を追加しました。
  • すべての入力パラメータと計算された面積を含む説明的な出力を含めました。
  • 浮動小数点数を小数点以下 2 桁で表示するために %.2f を使用しました。

まとめ

この実験では、最初に printf()scanf() 関数を使って台形の 2 つの平行辺の長さと高さを読み取る方法を学びました。次に、公式:面積 = 0.5 × (a+b) × h (ここで、a と b は平行辺、h は高さ) を使って台形の面積を計算しました。最後に、計算された面積をコンソールに表示しました。