2014-10-15 1 views
-4

바람 침착 = 35.74 + 0.6215T - 35.75 (V^0.16) + 0.4275T (V^0.16)이 수식을 어떻게 C++ 프로그램에 입력 할 수 있습니까?

내 프로그램에 입력하기 위해 상기 수식을 정확한 방법이 필요하다. 나는 현재 다음과 나에게 미친 번호를주고 있습니다

WindChill = ((35.74 + (0.6215 * temperature)) 
    - (35.75 * pow(windSpeed, 0.16)) 
    + (0.4275 * temperature * pow(windSpeed, 0.16))); 

내가 초보자 프로그래머 오전, C++ 내 첫 번째 언어는 내가 지금 내가 어떤 모든 도움을 주셔서 감사합니다 것 배우고있다. 고맙습니다.

+1

질문이 명확하지 않습니다. – Chantola

+2

입력 값과 출력을 지정하고 예상 한 결과를 나타낼 수 있습니까? – Creris

+0

모든 변수가 float/double 형태로 선언 되었습니까? 아니면 ints에 숨어 있습니까? –

답변

1

괄호를 제거하면 간단해질 수 있습니다.

double wind_chill = 35.74 + 0.6215 * T - 35.75 * pow(V, 0.16) + 0.4275 * T * pow(V, 0.16); 

그러나이 경우 전원을 두 번 계산합니다. 더 좋은 방법은 다음과 같습니다.

double pow_v = pow(V, 0.16); 
double wind_chill = 35.74 + 0.6215 * T - 35.75 * pow_v + 0.4275 * T * pow_v; 
1

시도해보십시오. 그리고 자신의 힘 함수를 사용하고 있다면, 그 방법을 몇 번이고 반복해서 호출하면 그것을 몇 가지 변수에 저장할 수 있습니다. 이는 효율성과 가독성에 도움이됩니다.

double windPower = pow(windspeed, 0.16); 
WindChill = (35.74 + (0.6215 * temp) - (35.75 * windPower) + (0.4275 * temp * windPower)) 

그리고 전원 기능 (당신이 그것을 정의 할 경우)은 다음과 같이 진행됩니다 -

int pow(int x, unsigned int y) 
{ 
    if(y == 0) 
     return 1; 
    else if (y%2 == 0) 
     return power(x, y/2)*power(x, y/2); 
    else 
     return x*power(x, y/2)*power(x, y/2); 

} 

(I 빠르게 테스트 할 수 있었다 현재)이 정수입니다.

+0

그들은 '풍속'을 0.16의 힘으로 올리려고 노력하고 있습니다. 'unsigned int' 힘을 취하는'pow' 함수를 쓰는 이유는 무엇입니까? – CoryKramer

+0

필자는 int를 예제로 신속하게 테스트 할 수있게되었습니다. 이중으로 복제하는 것이 어렵지 않다고 생각합니다. – ravi

+0

... 아니면 그냥'std :: pow'을 사용하십시오. – CoryKramer

0

동일한 데이터를 사용하여 손으로 계산하는 경우 동일한 미친 숫자 또는 정답이 있습니까? 똑같은 미친 숫자를 얻는다면 어쩌면 숫자를 올바른 단위로 변환해야 할 수도 있습니다. 예를 들어 온도는 섭씨 또는 화씨보다 켈빈이어야합니다.

(댓글이 있어야하지만 충분한 담당자가 아직 없습니다 ...)

관련 문제