|
|||||||||||||||||||||||||||||||||||||||||||||||
C 언어는 덧셈, 뺄셈, 곱셈, 나눗셈을 포함한 산술 연산자를 제공하지만, 제곱을 한다든지 제곱근을 구한다든지 등 다른 수학적인 계산을 위한 연산자는 제공하지 않는다. 이렇게 산술 연산자로 제공되지 않는 수학적 계산을 위해서 관련된 수학 함수들을 미리 정의하여 제공하고 있다. 사용자들은 필요에 따라서 이러한 수학 함수들을 적절히 불러서 사용할 수 있다. 실제로, 여러분은 이미 5주차 강의 6장에서 2차 방정식의 해를 구할 때, 주어진 수의 제곱근을 구하기 위해서 sqrt() 수학 함수를 사용하였다. 가령, 한 개의 수를 읽어들여서 그 수의 제곱근을 계산하여 출력하는 프로그램을 생각해보자. 이 프로그램은 간단하므로, 분석, 설계 과정을 기술하지 않고서 직접 프로그램 9.1로 보여준다. ![]() 프로그램 9.1은 한 개의 수를 입력받고, 그 수에 대한 제곱근을 구하기 위해서 sqrt()의 수학 함수를 불러서 사용한다. main() 함수에서 사용되고 있는 sqrt() 함수에 대해서 살펴보자. 다음은 사용자 입장에서 본 sqrt() 함수의 행동을 보여준다. 즉, sqrt()는 double 타입의 값을 입력받고, 이 값에 대한 제곱근 값을 계산하여 출력한다. main() 함수는 sqrt() 함수를 불러서 사용하는데, 이 때 이 두 함수간의 관계를 살펴보자. main()은 sqrt() 함수를 부를 때, n의 값을 전달하고, sqrt()는 n의 제곱근 값을 계산하고, 이 계산된 값을 다시 main()에게 전달하는 것을 알 수 있다. 따라서 여러분은 sqrt()를 사용할 때, 어떤 타입의 값을 전달해야 하고, sqrt()로부터 어떤 타입의 값이 반환되고, 그리고 반환된 값의 의미가 무엇인지에 대해서 알고 있어야 한다. 그렇지 않는다면, sqrt() 함수의 올바른 사용을 기대할 수 없다. 다음은 여러분이 수학 함수를 사용하기 전에, 일반적으로 알아두어야 할 사항들이다.
이러한 사항들에 대해서 sqrt()를 적용하면 다음과 같다. 여러분은 sqrt() 함수가 어떻게 해서 그 결과 값을 만들어내는지에 대해서는 관심 가질 필요가 없다. 사용자가 유일하게 관심 가져야 할 사항은 sqrt() 함수에 전달할 값의 타입과 함수로부터 전달받을 결과 값의 타입이다. 그리고 sqrt() 함수의 기능이다. 이러한 정보를 종합하여 다음과 같이 표현할 수 있다. 이미 5주차 강의에서 밝혔듯이, 수학 함수를 사용하기 위해서는 수학 라이브러리 헤더 파일 math.h를 반드시 포함시켜야 한다. 이 헤더 파일은 사용된 수학 함수에 대한 정보, 즉 함수 원형을 포함하고 있으며, 이러한 정보를 사용하여 컴파일러는 프로그램이 올바른지를 검사하고 번역한다. 이것은 여러분이 scanf()나 printf()를 사용하기 위해서 표준 입출력 헤더 파일 stdio.h를 포함시키는 것과 마찬가지 이유이다. 만약에, 여러분이 C가 제공하는 라이브러리의 헤더 파일을 포함시키지 않고서 라이브러리 함수를 사용한다면 "정의되지 않은 식별자(undeclared identifier)"라는 오류 메시지를 볼 수 있을 것이다. 다음 표는 수학 라이브러리 함수들 중에서 빈번히 사용되는 수학 함수들을 보여준다.
수학 함수 몇 가지에 대해서 그 행동을 살펴보자. 다음은 abs() 함수에 대한 행동을 보여준다. 다음은 sqrt() 함수에 대한 행동을 보여준다.
수학 함수는 식에서 피연산자의 위치에 올 수 있다. 이것은 수학 함수의 수행 결과가 값이기 때문이다. 다음의 식은 올바르다.
|
|
[문장 단위 입력 실행] 여러분은 다음 실습창에서 수학 라이브러리 함수를 한 문장씩 입력하여 실행시켜 볼 수 있다. 새로운 프로그램을 한 문장씩 입력하고 오른쪽 창에서 그 실행 결과를 살펴 보시오. |
사용법
|
1.아래의 실습창중 <
C 문장 입력 > 란을 통하여 C문장 한문장씩 입력하고 Enter
키나 입력 버튼을 클릭하 면 해당 문장에
대한 시각화가 오른쪽에 나타나게 됩니다. 자세한 사용법은 여기를
클릭하여 주십시요
|
|
|
|