C 言語で斜辺の長さを計算する方法

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

はじめに

この実験では、C プログラミングを使用して直角三角形の斜辺を計算する方法を学びます。この実験では、2 つの直角辺の長さを読み込み、ピタゴラスの定理を使用して斜辺を計算する手順を段階的に説明します。この実験の終わりまでに、C で三角関数計算を行う方法をしっかりと理解しているはずです。

この実験は、直角三角形の 2 つの直角辺の長さを読み込むプロセスから始まります。次に、斜辺の二乗は他の 2 つの辺の二乗の和に等しいというピタゴラスの定理を使用して、斜辺を計算します。最後に、計算された斜辺を出力する方法を学びます。

直角三角形の 2 辺を読み込む

このステップでは、C プログラムで直角三角形の 2 つの直角辺を読み込む方法を学びます。三角形の直角辺の長さをユーザーから入力させるシンプルなプログラムを作成します。

まず、プロジェクトディレクトリに移動し、新しい C ファイルを作成します。

cd ~/project
nano hypotenuse.c

次に、直角三角形の 2 つの直角辺を読み込むための以下のコードを追加します。

#include <stdio.h>

int main() {
    float leg1, leg2;

    printf("Enter the length of the first leg: ");
    scanf("%f", &leg1);

    printf("Enter the length of the second leg: ");
    scanf("%f", &leg2);

    printf("First leg: %.2f\n", leg1);
    printf("Second leg: %.2f\n", leg2);

    return 0;
}

コードを詳しく見てみましょう。

  • 直角辺の長さは小数を含む可能性があるので、float 型を使用しています。
  • printf() はユーザーに入力を促すために使用されます。
  • scanf() はユーザーの入力を読み込み、変数 leg1leg2 に格納します。
  • 入力された直角辺の長さを表示して、入力が確認できます。

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

gcc hypotenuse.c -o hypotenuse

プログラムの実行例:

Enter the length of the first leg: 3
Enter the length of the second leg: 4
First leg: 3.00
Second leg: 4.00

ピタゴラスの定理を用いた斜辺の計算 c = √(a² + b²)

このステップでは、ピタゴラスの定理を用いて斜辺を計算するプログラムを前のプログラムから修正します。平方根を計算するために、math ライブラリの sqrt() 関数を使用します。

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

cd ~/project
nano hypotenuse.c

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

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

int main() {
    float leg1, leg2, hypotenuse;

    printf("Enter the length of the first leg: ");
    scanf("%f", &leg1);

    printf("Enter the length of the second leg: ");
    scanf("%f", &leg2);

    // ピタゴラスの定理を用いて斜辺を計算
    hypotenuse = sqrt(leg1 * leg1 + leg2 * leg2);

    printf("First leg: %.2f\n", leg1);
    printf("Second leg: %.2f\n", leg2);
    printf("Hypotenuse: %.2f\n", hypotenuse);

    return 0;
}

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

gcc hypotenuse.c -o hypotenuse -lm

プログラム実行時の出力例:

Enter the length of the first leg: 3
Enter the length of the second leg: 4
First leg: 3.00
Second leg: 4.00
Hypotenuse: 5.00

コードに関する重要な点:

  • #include <math.h>sqrt() 関数のために math ライブラリを追加します。
  • sqrt(leg1 * leg1 + leg2 * leg2) は斜辺を計算します。
  • コンパイル時に -lm フラグを使用して math ライブラリをリンクします。

斜辺の長さを表示する

このステップでは、直角三角形の斜辺計算結果をよりフォーマット化して、ユーザーフレンドリーな出力にするために、前のプログラムを拡張します。

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

cd ~/project
nano hypotenuse.c

出力のフォーマットを改善するためにコードを修正します。

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

int main() {
    float leg1, leg2, hypotenuse;

    printf("直角三角形斜辺計算機\n");
    printf("---------------------\n");

    printf("第一辺の長さを入力してください:");
    scanf("%f", &leg1);

    printf("第二辺の長さを入力してください:");
    scanf("%f", &leg2);

    // ピタゴラスの定理を用いて斜辺を計算
    hypotenuse = sqrt(leg1 * leg1 + leg2 * leg2);

    // フォーマットされた結果を表示
    printf("\n三角形の計測結果:\n");
    printf("第一辺:  %.2f\n", leg1);
    printf("第二辺: %.2f\n", leg2);
    printf("斜辺: %.2f\n", hypotenuse);

    // 計算の詳細
    printf("\n計算の詳細:\n");
    printf("公式:c = √(a² + b²)\n");
    printf("        = √(%.2f² + %.2f²)\n", leg1, leg2);
    printf("        = √(%.2f + %.2f)\n", leg1 * leg1, leg2 * leg2);
    printf("        = %.2f\n", hypotenuse);

    return 0;
}

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

gcc hypotenuse.c -o hypotenuse -lm

プログラムを実行して詳細な出力を確認します。

./hypotenuse

出力例:

直角三角形斜辺計算機
---------------------
第一辺の長さを入力してください: 3
第二辺の長さを入力してください: 4

三角形の計測結果:
第一辺:   3.00
第二辺:  4.00
斜辺:  5.00

計算の詳細:
公式: c = √(a² + b²)
        = √(3.00² + 4.00²)
        = √(9.00 + 16.00)
        = 5.00

主な改善点:

  • 説明的な見出しを追加
  • 整列された列でフォーマットされた出力
  • 段階的な計算の詳細を含める
  • ユーザーにとって読みやすくなった

まとめ

この実験では、最初に C プログラムでユーザーに入力を促し、値を変数に格納することで、直角三角形の 2 つの辺の長さを読み取る方法を学びました。次に、斜辺の二乗は他の 2 辺の二乗の和に等しいというピタゴラスの定理を用いて、斜辺の長さを計算しました。プログラムは、平方根を計算し、斜辺の長さを決定するために、math ライブラリの sqrt() 関数を使用しています。