Microsoft Small Basic

Program Listing: PKX286
'TextWindow.Show()
'TextWindow.WriteLine("请输入数字:")
'input = TextWindow.ReadNumber()
input = 9
Fib()


max = input



GraphicsWindow.Height = nums[max]*10
GraphicsWindow.Width = (nums[max-1]+nums[max])*10
GraphicsWindow.CanResize = "false"


originX = 0
originY = 0

For i = max-1 to 4 step -4
originY = originY + nums[i]*10
EndFor

For i = max-2 to 3 step -4
originX = originX + nums[i]*10
EndFor


radius = 1
DrawFib()

Sub Fib
nums[0] = 0
nums[1] = 1
TextWindow.WriteLine(0+": "+nums[0])
TextWindow.WriteLine(1+": "+nums[1])
For i = 2 To input
nums[i] = nums[i-1]+nums[i-2]
TextWindow.Write(i+": ")
TextWindow.WriteLine(nums[i])
EndFor
EndSub


Sub DrawFib
Turtle.X = originX
Turtle.Y = originY
Turtle.Show()
Turtle.TurnRight()

For i = 1 To Array.GetItemCount(nums)
Turtle.Speed = 8
d = 10* nums[i] * Math.Pi / 180
For a = 1 To 90 'draw a quarter circle
Turtle.Move(d)
Turtle.Turn(1)
EndFor
Turtle.Turn(90)
Turtle.Speed = 10
Turtle.Move((nums[i]+nums[i-1])*10)
Turtle.PenUp()
Turtle.Move(-(nums[i]+nums[i-1])*10)
Turtle.Turn(-90)
Turtle.PenDown()
EndFor

EndSub