2013-08-11 2 views
-2

저는 컴퓨터 과학 학생입니다. C++을 사용하여 작은 프로그램을 만들어서도 또는 라디안을 요청한 다음 sin, cos 및 tan 값을 출력해야하는 프로젝트가 할당되었지만 #include <iostream> 만 사용할 수 있습니다. 사인 값은 정상적으로 작동하지만 코사인 값이 문제입니다. 이것은 내가 계산하는 데 사용하는 코드입니다.코사인 계산없이 cmath 라이브러리

float rad = radian value; 

float func_cos (float rad) 
{ 
    float cos; 
    int i = 0; 
    float sum = 0; 
    float x = rad; 

    while (fabs(x) > 0.000001) 
    { 
     i = i + 2; 
     x = -(x) * ((rad*rad)/(i*(i-1))); 
     sum = (sum) + (x); 
    } 
    cos = 1 - sum; 

    return cos; 
} 
+3

스택 오버플로에 오신 것을 환영합니다! 코드에서 오류를 발견하도록 사람들에게 요청하는 것은 특히 생산적이지 않습니다. 디버거를 사용하거나 인쇄 문을 추가하여 프로그램의 진행 상황을 추적하고 발생할 것으로 예상되는 것과 비교하여 문제를 격리해야합니다. 이 둘이 갈라지면 문제를 발견했습니다. (그리고 필요하다면 [최소 시험 경우] (http://sscce.org)를 구성해야합니다.) –

답변

7

sin(x)이 있습니까? 그럼 쉽습니다. cos(x) = sin(x + pi/2)

+0

우리는 "1 - 죄 (x) * 죄를 사용하여 Pi의 정확한 가치가 없기 때문에 x) "가 더 정확합니다;) – Soosh

+0

@AmirNoori하지만 당신은 그 루트를 제곱해야하고'sqrt'는 사용할 수 없습니다. :-P –

+0

@ Chris-Jester-Young 오 마옹! 당신 말이 맞아요 : D – Soosh

1

"Oli Charlesworth"에 동의하고 "fabs (x)"기능은 "iostream"헤더에 없습니다.

+0

형제 ..이 코드 사용했을 \t 이중 팹 (더블 F) { \t \t \t \t을 경우 \t \t 복귀 -f (<0 F); \t \t else \t \t \t return f; \t} –

+0

그 경우 ok : – Soosh

+0

네 동생 .. 정말 고마워. –