C 언어로 역사인 (arcsin) 계산하기

CBeginner
지금 연습하기

소개

이 실습에서는 C 프로그래밍에서 역사인 (arcsin) 함수를 계산하는 방법을 배웁니다. 이 실습은 두 가지 주요 단계로 구성됩니다: -1 과 1 사이의 유효한 입력 값을 읽고 math.h 라이브러리의 asin() 함수를 사용하여 입력의 역사인을 계산하는 것입니다. 프로그램은 입력 범위를 검증한 후 계산된 각도를 라디안으로 표시합니다. 이 실습은 C 를 사용한 삼각 함수 계산 및 asin() 함수 사용에 대한 실질적인 이해를 제공하는 것을 목표로 합니다.

-1 과 1 사이의 값 읽기

이 단계에서는 C 에서 역사인 (arcsin) 함수를 계산하기 위해 숫자 입력을 읽고 유효성을 검사하는 방법을 배웁니다. 역사인 함수는 입력 값이 -1 과 1 사이여야 합니다.

먼저 프로그램을 위한 새로운 C 파일을 만듭니다.

cd ~/project
nano arcsin_input.c

이제 입력을 읽고 유효성을 검사하는 다음 코드를 작성합니다.

#include <stdio.h>

int main() {
    double input;

    printf("arcsin 계산을 위해 -1 과 1 사이의 값을 입력하세요: ");
    scanf("%lf", &input);

    // 입력 범위 유효성 검사
    if (input < -1 || input > 1) {
        printf("오류: 입력 값은 -1 과 1 사이여야 합니다.\n");
        return 1;
    }

    printf("유효한 입력 값: %f\n", input);

    return 0;
}

프로그램을 컴파일하고 실행합니다.

gcc arcsin_input.c -o arcsin_input
./arcsin_input

예시 출력:

arcsin 계산을 위해 -1과 1 사이의 값을 입력하세요: 0.5
유효한 입력 값: 0.500000

이 코드에서 우리는 다음을 수행합니다.

  • scanf()를 사용하여 배정도 부동소수점 숫자를 읽습니다.
  • 입력이 -1 과 1 의 유효 범위 내에 있는지 확인합니다.
  • 입력이 유효 범위를 벗어나면 오류 메시지를 출력합니다.
  • 입력이 기준을 충족하면 유효한 입력을 확인합니다.

asin() 함수 사용

이 단계에서는 math.h 라이브러리의 asin() 함수를 사용하여 유효한 입력 값의 역사인 (arcsin) 을 계산하는 방법을 배웁니다.

먼저 이전 프로그램을 수정하여 asin() 함수를 포함합니다.

cd ~/project
nano arcsin_calculation.c

아크사인 결과를 계산하고 표시하는 다음 코드를 작성합니다.

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

int main() {
    double input;

    printf("arcsin 계산을 위해 -1 과 1 사이의 값을 입력하세요: ");
    scanf("%lf", &input);

    // 입력 범위 유효성 검사
    if (input < -1 || input > 1) {
        printf("오류: 입력 값은 -1 과 1 사이여야 합니다.\n");
        return 1;
    }

    // asin() 함수를 사용하여 아크사인 계산
    double result = asin(input);

    printf("입력: %f\n", input);
    printf("아크사인 결과: %f 라디안\n", result);

    return 0;
}

수학 라이브러리와 함께 프로그램을 컴파일합니다.

gcc arcsin_calculation.c -o arcsin_calculation -lm

프로그램을 실행하고 다양한 입력으로 테스트합니다.

./arcsin_calculation

예시 출력:

arcsin 계산을 위해 -1과 1 사이의 값을 입력하세요: 0.5
입력: 0.500000
아크사인 결과: 0.523599 라디안

asin() 함수에 대한 주요 사항:

  • math.h 라이브러리에 정의되어 있습니다.
  • 입력 값으로 -1 과 1 사이의 값을 받습니다.
  • 라디안 단위의 각도를 반환합니다.
  • 컴파일 시 -lm 플래그로 연결해야 합니다.

라디안 단위 각도 출력

이 단계에서는 라디안과 도 (degree) 를 포함한 다양한 각도 표현으로 아크사인 결과를 변환하고 출력하는 방법을 배웁니다.

이전 프로그램을 수정하여 각도 변환을 포함합니다.

cd ~/project
nano arcsin_angle_conversion.c

라디안과 도 단위의 각도를 표시하는 다음 코드를 작성합니다.

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

#define PI 3.14159265358979323846

int main() {
    double input;

    printf("arcsin 계산을 위해 -1 과 1 사이의 값을 입력하세요: ");
    scanf("%lf", &input);

    // 입력 범위 유효성 검사
    if (input < -1 || input > 1) {
        printf("오류: 입력 값은 -1 과 1 사이여야 합니다.\n");
        return 1;
    }

    // 아크사인 계산
    double radian_result = asin(input);

    // 라디안을 도로 변환
    double degree_result = radian_result * (180.0 / PI);

    // 결과 출력 (서식 지정)
    printf("입력: %f\n", input);
    printf("아크사인 결과 (라디안): %f\n", radian_result);
    printf("아크사인 결과 (도): %f\n", degree_result);

    return 0;
}

프로그램을 컴파일합니다.

gcc arcsin_angle_conversion.c -o arcsin_angle_conversion -lm

프로그램을 실행하고 테스트합니다.

./arcsin_angle_conversion

예시 출력:

arcsin 계산을 위해 -1과 1 사이의 값을 입력하세요: 0.5
입력: 0.500000
아크사인 결과 (라디안): 0.523599
아크사인 결과 (도): 30.000000

각도 변환에 대한 주요 사항:

  • asin() 함수의 기본 반환 형식은 라디안입니다.
  • 도로 변환: (180/π) 로 곱합니다.
  • 정확한 변환을 위해 #define PI를 사용합니다.
  • 결과의 가독성을 높이기 위해 서식을 지정합니다.

요약

이 실험에서는 C 에서 역사인 (arcsin) 함수를 계산하기 위해 필요한 -1 과 1 사이의 숫자 입력 값을 읽고 유효성을 검사하는 방법을 배웠습니다. 그런 다음 math.h 라이브러리의 asin() 함수를 사용하여 유효한 입력 값의 아크사인을 계산하고, 라디안 단위로 결과를 출력했습니다.

핵심 학습 내용은 다음과 같습니다. 1) 입력 범위를 검증하여 -1 에서 1 사이의 유효 범위 내에 있는지 확인하고, 2) asin() 함수를 사용하여 입력 값의 역사인을 계산하는 것입니다.