C 言語で逆正接 (arctan) を計算する

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

はじめに

この実験では、C プログラミングで逆正接 (arctan) 関数を計算する方法を学びます。この実験は、3 つの主要なステップで構成されています。ユーザーからの実数の入力を読み取り、atan() 関数を使用して逆正接を計算し、結果をラジアンで出力します。この実験の終わりまでに、C を使用して三角関数計算を行う方法をしっかりと理解しているはずです。

この実験は、ユーザーから実数を読み取る方法を最初に教えます。これは、逆正接を計算するために不可欠です。次に、atan() 関数を使用して、入力数値の逆正接を計算します。最後に、結果をラジアンで出力することで、出力を解釈できます。

任意の実数の読み込み

このステップでは、逆正接 (arctan) 関数を計算するために、C プログラミングで実数を読み込む方法を学びます。

まず、プログラムを実装するための新しい C ソースファイルを作成しましょう。

cd ~/project
nano read_number.c

次に、ファイルに以下のコードを追加します。

#include <stdio.h>

int main() {
    double number;

    printf("Enter a real number: ");
    scanf("%lf", &number);

    printf("You entered: %f\n", number);

    return 0;
}

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

  • double number; は、実数を格納するための変数を宣言します。
  • scanf("%lf", &number); は、ユーザー入力から倍精度浮動小数点数を読み込みます。
  • printf("You entered: %f\n", number); は、入力された数値を表示します。

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

gcc read_number.c -o read_number
./read_number

実行例:

Enter a real number: 3.14
You entered: 3.140000

atan() 関数を使用する

このステップでは、入力数値の逆正接 (arctan) を計算するために、atan() 関数を使用するように、前のプログラムを修正します。

read_number.c ファイルを以下のコードで更新します。

cd ~/project
nano read_number.c

以下の内容を追加します。

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

int main() {
    double number, angle;

    printf("Enter a real number: ");
    scanf("%lf", &number);

    angle = atan(number);

    printf("Input number: %f\n", number);
    printf("逆正接 (arctan) の値 (ラジアン): %f\n", angle);

    return 0;
}

コードの変更点:

  • 数学関数を使用するために #include <math.h> を追加しました。
  • atan() 関数を使用して逆正接を計算しました。
  • 結果を格納するための新しい変数 angle を追加しました。
  • 入力数値とその逆正接の両方を表示しました。

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

gcc read_number.c -o read_number -lm
./read_number

実行例:

Enter a real number: 1
Input number: 1.000000
逆正接 (arctan) の値 (ラジアン): 0.785398

ラジアン単位で角度を表示する

このステップでは、逆正接の角度をラジアン単位でより詳細に表示するようにプログラムを拡張します。

read_number.c ファイルを以下のコードで更新します。

cd ~/project
nano read_number.c

以下の内容を追加します。

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

int main() {
    double number, angle;

    printf("Enter a real number: ");
    scanf("%lf", &number);

    angle = atan(number);

    printf("Input number: %f\n", number);
    printf("逆正接 (arctan) の値 (ラジアン): %f\n", angle);
    printf("角度 (度): %f\n", angle * 180.0 / M_PI);

    return 0;
}

コードの変更点:

  • ラジアンから度への変換 (angle * 180.0 / M_PI) を追加しました。
  • 精度の高い変換のために math.h からの定数 M_PI を使用しました。
  • 度単位の角度を表示するための追加の出力文を追加しました。

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

gcc read_number.c -o read_number -lm
./read_number

実行例:

Enter a real number: 1
Input number: 1.000000
逆正接 (arctan) の値 (ラジアン): 0.785398
角度 (度): 45.000000

まとめ

この実験では、ユーザーから実数を入力を受け取り、atan() 関数を使ってその逆正接 (arctan) をラジアン単位で計算する方法を学びました。まず、C プログラムを作成し、ユーザーに実数を入力するように促し、入力された数値を表示しました。次に、プログラムを修正して、atan() 関数を使って入力数値の逆正接を計算し、その結果をラジアン単位で表示するようにしました。この実験では、これらの機能を実装するための段階的な手順を示し、プロセスを明確に理解できるようにしました。