Menu
Coddy logo textTech

복습 - 온도

Coddy R 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 57개 중 6번째.

challenge icon

챌린지

중급

Temperature.R에서 S3 클래스 temperature를 구현하세요. 온도는 unit 속성(C 또는 F)을 가진 숫자입니다.

  • new_temperature(value, unit)은 stopifnot()으로 형식을 확인하고 structure(value, unit = unit, class = "temperature")을 반환합니다.
  • validate_temperature(x)은 unit must be C or F라는 메시지와 함께 중단하거나, 값이 -273.15 C 또는 -459.67 F보다 낮을 때 below absolute zero라는 메시지와 함께 중단합니다.
  • temperature(value, unit = "C")은 as.double()로 값을 변환하고 단위를 대문자로 바꾼 다음 검증된 온도를 반환합니다.
  • format.temperature()은 소수점 이하 한 자리로 21.5 C를 반환하며, print.temperature()은 Temperature: 21.5 C를 출력하고 invisible(x)를 반환합니다.
  • convert_to(t, unit)은 지정된 단위의 온도를 반환합니다(단위가 이미 일치하면 같은 값을 반환합니다).

모든 stop()에서 call. = FALSE를 사용하세요. 제공된 코드는 21.5 c F(값, 단위, 대상 단위) 형식의 줄을 읽고, 온도와 변환된 온도를 출력하거나 error: 와 메시지를 출력합니다.

코드는 Temperature.R에 작성하세요. main.R에는 제공된 입력/출력 코드가 들어 있으며 편집할 수 없습니다.

직접 해보기

source("Temperature.R")

# 제공된 입력/출력 코드: 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
for (line in input) {
  p <- strsplit(line, " ")[[1]]
  result <- tryCatch({
    t <- temperature(p[1], p[2])
    print(t)
    print(convert_to(t, p[3]))
    NULL
  }, error = function(e) cat("error: ", conditionMessage(e), "\n", sep = ""))
}

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 R 컴파일러