프로그래밍하다 보면 정말 많이 쓰이는게 비율 계산입니다.
가령 내 키가 저 산 높이라면 내 심장은 저기 어디 위치 쯤일 것이다라고 수학적으로 계산하는 것이죠.
비율 계산은 특히 화면에 그래프를 그려야 하는 경우면 거의 다 쓰이게 되는데,
옛날에는 중학생 과정(요즘은 잘 몰라서)에 나오기 때문에 누구나 다 쉽게 할수 있었습니다.
워낙 쉬우거닌까 따로 설명할 필요도 없이 닥치면 누구나 해결하는 것이지만
가끔 바쁘다 보면 헷갈릴때도 있습니다. (나이가 들어서 그런가?)
그래서 간단하게 그림으로 만들어 봤습니다.
그림에서 길이 A 인 막대의 p 위치를
길이가 B 인 막대의 x 위치를 찾는게 비율계산의 핵심인데,
비율 계산 공식에 의해
A:B = p:x 가 성립해야 하므로,
Ax = Bp 가 되고
x = Bp / A 가 되죠.
가령 A=5 B=10 이라고 하고 p=3 이라면
x = (3 * 10) / 5 = 6 으로 구해 집니다.
실제 실무에서는 이렇게 간단하고도 명료하게 비율 계산을 해야하는 경우 보다는,
매우 복잡한 상황에서의 계산이 요구되는 경우가 더 많은데
계산 공식이 아무리 복잡해 보여도 비율 계산의 핵심만 짚으면 어렵지 않게 해결할 수 있습니다.
하나 더 덤으로 프로그래머가 유의해야할 사항은
매우 정확한 계산을 위해서는 double 형으로 모두 계산하고
사용처가 int 형 같으면 계산된 결과값을 int 로 옮기는게 정밀도에 있어 유리합니다.
double x = 계산 공식;
int use = x;
이렇게 처리하는게 가장 좋은데
int x = 계산 공식;
이런 식으로 하면 정수 형에 대입하는 것을 고려해 컴파일러의 계산 정밀도가 낮아 지기 때문에
원치 않는 오차를 발생시킬 수 있기 때문입니다.
이걸 강의라고 하기는 그렇지만, 워낙 많이 쓰이는 것이고
혹시 이런 쉬운 거 때문에 시간 낭비하는 일이 생길까봐 여기에 올려둡니다.
그럼..
예) int i = int(3.14 + 0.5f);
반올림 함수가 뭐 있었는데 생각이 안난다는..ㅠㅠ