to achtung
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Fibonacci-Folge
;;; für MSWLogo
;;; Wolfgang.Urban@schule.at
;;; automatische float-Rechnung!
;;;
;;; Aufruf z.B. pr fibo1(10)
;;; oder        pr fibo4(10,1,1)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end


to fibo1 :n
  ifelse :n < 3 [op 1] ~
                [op (fibo1 :n - 1) + (fibo1 :n - 2)]
end

to fibo1a :n
  if :n < 3 [op 1]
  op (fibo1a :n - 1) + (fibo1a :n - 2)
end

to fibo2 :n
  ; ev. make "fiboliste []
  if (not emptyp gprop "fiboliste :n) [op gprop "fiboliste :n]
  if :n <3 [op 1]
  pprop "fiboliste :n (fibo2 :n - 1)+(fibo2 :n - 2)
  op gprop "fiboliste :n   
end

to fibo3 :n
  if :n < 3 [op 1]
  local "a
  local "b
  local "neu
  make "a 1
  make "b 1
  repeat :n - 2 [make "neu :a + :b make "a :b make "b :neu]
  op :neu
end

to fibo4 :n :a :b
  if :n = 1 [op :a]
  if :n = 1 [op :b]
  op fibo4 :n - 1 :b :a + :b
end

to fibo :n
  op fibo4 :n 1 1
end