Menu
Coddy logo textTech

복습 - 안전한 계산기

Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 56번째.

challenge icon

챌린지

어려움

evaluate(expr)를 완성하세요. 표현식은 연산자 양쪽에 공백이 있는 <number> <operator> <number> 형식이며, 예를 들면 8 / 2와 같습니다. 각 문제에 대해 stop()으로 오류를 발생시키되, 다음 순서로 확인하세요:

  • 부분이 정확히 세 개가 아닐 때 expected: number operator number
  • 변환할 수 없는 첫 번째 숫자 부분에 대해 '<part>' is not a number, 예를 들면 'x' is not a number
  • 연산자가 +, -, * 또는 /가 아닐 때 unknown operator <op>
  • division by zero

그 외의 경우에는 round(value, 4)를 사용하여 결과를 소수점 이하 네 자리로 반올림한 뒤 반환하세요.

그런 다음 run_all(exprs)를 완성하세요. 각 표현식을 tryCatch() 안에서 평가하고, 표현식마다 한 줄씩 반환하세요. 반환 형식은 8 / 2 = 4 또는 5 / 0 -> error: division by zero입니다.

제공된 코드는 모든 입력 줄을 run_all()에 전달하고 반환된 각 줄을 출력합니다.

직접 해보기

evaluate <- function(expr) {
  # 여기에 코드를 작성하세요
  0
}

run_all <- function(exprs) {
  # 여기에 코드를 작성하세요
  character(0)
}

# 제공된 입출력 코드: 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
cat(run_all(input), sep = "\n")

논리와 흐름의 모든 레슨

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