Ybadoo - Soluções em Software Livre
Tutoriais
Programação Orientada a Objetos

Desenvolva uma função ou um conjunto de funções em LISP, que calcule o valor de π com a série infinita π = 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + .... O número de termos será fornecido pelo usuário, devendo ser um valor inteiro e positivo. Por exemplo, caso o número de termos fornecido pelo usuário seja 5, o programa deverá apresentar como resposta o valor 3.3396825396825403, ou seja, 4 - 4/3 + 4/5 - 4/7 + 4/9. Caso o usuário forneça um valor inválido para o número de termos, o programa deverá apresentar como resposta o valor nil.

 

Arquivo Fibonacci.lisp

(defun even (n)
  (zerop (- n (* (floor (/ n 2)) 2)))
)

(defun piIteration (n)
  (if (zerop n)
    0
    (if (even n)
      (- (piIteration (- n 1)) (/ 4 (- (* n 2) 1)))
      (+ (piIteration (- n 1)) (/ 4 (- (* n 2) 1)))
    )
  )
)

(defun pi (n)
  (if (<= n 0)
    nil
    (piIteration n)
  )
)

(pi 5)