内容正文:
课题
斐波那契数列及图形设计
课型
新授
教学
目标
1.认识斐波那契数列及其规律。
2.学会编写输出斐波那契数列的程序。
3.体验通过turtle库将斐波那契数列转化为图形的程序编写。
教学
重点
学会编写输出斐波那契数列的程序。
教学
难点
学会编写输出斐波那契数列的程序。
课时
2课时
教具、学具
图片、电脑
教
学
过
程
教
学
过
程
教学过程
备注
1、 导入新课
通过展示的图片引出斐波那契数列看似平凡无奇,却对图案和图形“滋养”甚丰,且与大自然关系奇妙。
二、新课讲授
(1)斐波那契数列及其规律
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
(2) 斐波那契数列的输出
斐波那契数的序列Fn由递归关系定义:
Fn = Fn-1 + Fn-2
def f(n):
if n in [0,1]:
return n
else:
return f(n-1)+f(n-2)
for i in range(13):
print(f(i)," ",end='')
如果不使用递归输出斐波那契数列怎么办?实际上可以使用迭代算法来计算斐波那契数列。我们知道序列中的前两个数字是 0 和 1,并且序列中的每个后续数字都是其前两个数字的总和。因此,我们可以创建一个循环实现。
a=0
b=1
print(a,a+b," ",end='')
for i in range(3,13):
t=b
b=a+b
a=t
print(a+b," ",end='')
(3) 斐波那契数列转换为图形和螺旋线
斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契螺旋线。
turtle.pensize(5)
turtle.color("black")
turtle.penup()
turtle.home()
turtle.pendown()
这段代码是在设置画笔属性。
if i == 0:
fill_color = "black"
else:
fill_color = (random.random(), random.random(), random.random())
print(fill_color)
turtle.fillcolor(fill_color)
turtle.begin_fill()
for j in range(4):#
turtle.forward(f_list[i]*f0)
turtle.left(90)
"""
turtle.forward(f_list[i]*f0)
turtle.left(90)
turtle.forward(f_list[i]*f0)
turtle.left(90)
turtle.forward(f_list[i]*f0)
turtle.left(90)
"""
turtle.end_fill()
这段代码是在绘制矩形并用random来任意调色。
三、随堂练习
同学根据本节所讲知识自行练习。
板书
设计
(教学小结)
- 2 -
学科网(北京)股份有限公司
$