일상생활에서 자동차의 속도는 보통 km/h(킬로미터 매 시간) 단위로 표현하지만, 물리학이나 과학 계산에서는 m/s(미터 매 초) 단위가 표준으로 사용됩니다. 이 글에서는 C++을 이용해 두 단위 사이의 속도를 서로 변환하는 방법을 알아보겠습니다.
변환 공식
두 단위 간의 변환은 다음과 같은 수식으로 이루어집니다.
1 km/h = 5/18 m/sec ≈ 0.277778 m/sec
1 m/sec = 18/5 km/hr = 3.6 km/hr
이 공식의 원리는 간단합니다. 1시간은 3600초이고 1킬로미터는 1000미터이므로, km/h 값을 3600으로 나누고 1000을 곱하면(즉, 5/18을 곱하면) m/s 값이 됩니다. 반대로 m/s 값에 3.6을 곱하면 km/h 값이 됩니다.
예제 입출력
입력: km = 60.00
mk = 70.00
출력: speed in meter per second = 16.6667
speed in km per hour = 252
알고리즘
- km/h를 m/s로 변환하는 함수를 선언합니다. 함수 내부에서 입력값에 0.277778을 곱한 결과를 반환합니다.
- m/s를 km/h로 변환하는 함수를 선언합니다. 함수 내부에서 입력값에 3.6을 곱한 결과를 반환합니다.
- main() 함수에서 float형 변수 km = 60.0과 mk = 70.0을 선언합니다.
- 각 변환 함수를 호출하여 결과를 출력합니다.
C++ 구현 코드
#include <bits/stdc++.h>
using namespace std;
// km/h를 m/s로 변환하는 함수
float km_m(float km){
return (0.277778 * km);
}
// m/s를 km/h로 변환하는 함수
float m_km(float mk){
return (3.6 * mk);
}
int main(){
float km = 60.0;
float mk = 70.0;
cout << "speed in meter per second = " << km_m(km) << endl
<< "speed in km per hour = " << m_km(mk);
return 0;
}실행 결과
speed in meter per second = 16.6667 speed in km per hour = 252
코드 설명
위 코드는 두 개의 독립적인 변환 함수로 구성되어 있습니다. km_m() 함수는 킬로미터 매 시간 단위의 속도를 받아 미터 매 초 단위로 변환하며, m_km() 함수는 그 반대의 연산을 수행합니다. main() 함수에서는 각각 60km/h와 70m/s를 테스트 값으로 사용하여 변환 결과를 화면에 출력합니다.
60km/h는 약 16.67m/s이며, 70m/s는 252km/h에 해당합니다. 이처럼 간단한 곱셈 연산만으로 두 단위 간의 변환이 가능하기 때문에, 실제 프로젝트에서도 속도 관련 계산에 널리 활용될 수 있습니다.