온도

온도

학습 연습 문제

소개

Integer는 컴퓨터 메모리가 허용하는 한, 아무리 큰 수라도 저장할 수 있어요. 반면 Int는 32비트나 64비트로 표현할 수 있는 양의 정수와 음의 정수를 나타내요(최소 -2^29에서 2^29까지는 보장돼요).

Float는 실수의 집합에 대응하고, 컴퓨터의 정밀도에 따라 표현할 수 있는 범위가 제한돼요. 숫자에 대해 정의된 연산은 보통 둘 중 한쪽 타입에서만 동작하고, 두 타입 모두에서 동작하지는 않아요.

Float와 Integer 사이를 변환하는 함수로는 Int/Integer를 Float로 바꿔 주는 toFloat, Float를 Int로 바꿔 주는 ceiling 등이 있어요.

정수 타입(Int 또는 Integer)에서 다른 숫자 타입으로 변환할 때는 fromIntegral 함수를 사용해요. 대상 타입은 자동으로 추론돼요. 예를 들면 다음과 같아요.

n :: Integer
n = 6
x :: Float
x = fromIntegral n      --> x = 6.0

m :: Int
m = 7
y :: Double
y = fromIntegral m      --> y = 7.0

지침

국제 자원봉사자들로 구성된 소방대의 일원이에요. 팀이 국제적이다 보니, 지난 몇 번의 출동에서 불타는 건물 내부의 온도를 추정하면서 화씨와 섭씨를 서로 변환하느라 귀중한 시간을 낭비했어요. 시간을 아끼고 사람도 지키기 위해, 국제 팀을 위해 화씨와 섭씨를 자동으로 변환해 주는 프로그램을 만들기로 해요.

1. 화씨를 섭씨로 변환하기

tempToC 함수를 구현해서 화씨 Integer 온도를 소수점 둘째 자리까지 반올림한 섭씨 Float 값으로 변환해요. 섭씨 온도는 다음과 같이 정의해요: T(°C) = (T(°F) - 32) / 1.8.

> tempToC 32
0.00

2. 섭씨를 화씨로 변환하기

tempToF 함수를 구현해서 섭씨 Float 온도를 화씨 값으로 변환해요. 안전을 위해 결과를 올림해서 그다음으로 큰 Integer로 만들어요. 화씨 온도는 다음과 같이 정의해요: T(°F) = T(°C) × 1.8 + 32.

> tempToF 4
40
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Haskell Exercism

온도 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.