Part 1: Sine

#?sin() - this tells us the function works in radians. So we should also work in radians
radian <- function(x){
  return(x * pi / 180)
}


sine_function <- function(x){
  
  result <- x
  next_term <- x
  i <- 3
  sign <- -1
  term_number <- 2
  
  while(abs(next_term) > .000000001){
    
    next_term <- next_term * (-(x^2)) / (i * (i - 1))
    
    result <- result + next_term
    
    i <- i + 2 
    
    sign <- -sign
    
    
  }
  return(result)
  }
sine_function(radian(30)) #perform the radian input
## [1] 0.5
sin(radian(30)) #we get the same answer
## [1] 0.5
#Cosine function
cosine_function <- function(x){
  
  result <- 1
  next_term <- 1
  i <- 2
  sign <- -1
  
  while(abs(next_term) > .0000001){
    
    next_term <- sign * next_term * (x^2) / (i * (i - 1))
    
    result <- result + next_term
    
    sign <- -sign
  }
  return(result)
}
cos(radian(4))
## [1] 0.9975641
cosine_function(radian(4))
## [1] 0.9975571