[R] 반지름을 입력받아 원의 넓이와 둘레 구하기 (feat. pi)

해당 포스트에서는 R에서 반지름을 입력받아 원의 넓이와 둘레를 계산하는 방법을 설명합니다.

1. INTRO

R프로그래밍을 학습하시면서 산술 계산(덧셈, 뺄셈, 곱셈, 나눗셈 등) 을 배우셨다면, 응용 문제로 도형의 넓이를 구하실 수 있습니다. 도형 별로 구하는 공식이 다르지만 R에서는 프로그래밍을 통해 구현가능하며, 이번 포스트에서는 여러 도형 중 원(circle)의 둘레와 넓이를 구하는 방법을 소개하려고 합니다.

▲ 결과 출력 예시

2. 문제 파악

이번 풀이에서 원하는 결과를 얻기 위해서는 아래 내용들을 감안하여야 합니다.

  1. 사용자에게 반지름 입력받기
  2. 원 둘레 공식 구현하기
  3. 원 넓이 공식 구현하기

1. 사용자에게 반지름 입력받기

R에서는 사용자 입력을 받기 위한 함수로 scanreadline을 사용할 수 있습니다. scan 함수의 경우 입력값(input)의 개수를 지정해서 받을 수 있다는 장점이 있으나 출력(display)이 제한적이다보니 저는 주로 readline 함수를 사용합니다.

사용자에게 입력받은 값으로 사칙연산을 수행하기 위해서는 입력값을 정수형 변수로 변환해야 합니다. (문자형으로 지정될 경우 사칙연산 수행이 되지않고 에러가 발생합니다.) 아래 코드 설명에서 보시는 것과 같이 as.integer()함수를 이용하면 쉽게 정수형 변수로 변환할 수 있습니다.

▲ 코드 설명 : 사용자에게 반지름 입력받기

2. 원 둘레 공식 구현하기

원 둘레를 구하는 식을 코드로 변환하면 2 * pi * radius 입니다. 해당 식에서 2는 상수, radius는 사용자에게 입력받은 정수이며, pi는 원주율 3.14를 의미합니다.

R에서 원주율 사용하기
R은 자체적으로 원주율 변수를 제공합니다. 변수명은 pi이며, 해당 변수를 출력해 보면 3.141593가 출력되는 것을 보실 수 있습니다.

▲ 코드 설명 : 원 둘레 공식 구현하기

3. 원 넓이 공식 구현하기

원 넓이를 구한는 식을 코드로 변환하면 pi * radius**2 입니다. R에서는 거듭 제곱을 위한 함수로 **^를 사용할 수 있습니다.

R에서 거듭제곱 사용하기
R은 거듭제곱을 위한 기능성 함수로 **^를 제공합니다. 예시로 2**3, 2^3를 출력해 보시면 모두 동일한 결과가 출력됨을 확인하실 수 있습니다.

3. 전체 코드

위에서 설명드린 코드를 정리하면 아래와 같습니다.

circle <- function(){

  radius <- as.integer(
    readline(prompt="반지름을 입력하세요 : ")
    )

  cat("\n원의 지름 :", 2*radius)
  cat("\n원의 둘레 :", 2*pi*radius)
  cat("\n원의 넓이 :", pi*radius**2)
}

circle()
반지름을 입력하세요 : 10

원의 지름 : 20
원의 둘레 : 62.83185
원의 넓이 : 314.1593

4. 마무리

이번 포스트에서는 R에서 반지름을 입력받아 원의 넓이와 둘레를 계산하는 방법을 설명하였습니다. 사용자의 입력을 받아 원의 둘레와 넓이를 계산하는 방법을 이해하셨다면, 삼각형, 사각형으로 도형을 변경해가며 응용해 보시면 좋을 것 같습니다.


banner-request-analysis