条件循环显身手
一、教学目标
1.掌握while语句的一般格式。
2.学会利用random随机函数生成整数。
3.用while语句解决次数不确定的重复性问题。
二、教学重难点分析
教学重点:while语句的格式和用法。
教学难点:灵活运用条件循环语句(while语句)编写程序,解决实际问题。
三、教学准备
1.教学环境
软件环境:多媒体网络教学软件、Python编程软件。
硬件环境:多媒体网络教室。
2.教学资源
教学课件、程序范例。
四、教学建议
本课在导入环节,可利用“探究实践一”的植树问题作为引例,引出“需要循环执行多次才能解决,但却无法预知循环次数”的问题,并由此问题引出本课的学习内容:条件循环(while循环)。
(一)while语句的一般格式
初步学习while语句的一般格式。
while<条件表达式>:
循环语句块
建议教师在授课时,可画出条件循环的流程图,帮助学生理解while循环的执行过程。
(二)while循环的应用
在上节课学习计数循环(for循环)的时候,学生对利用循环语句解决问题已经有了初步的认识。本节课共设计了四个“探究实践”和一个“小试身手”,目的在于让学生通过大量的探究实践进行迁移学习,进而熟练掌握条件循环(while语句),并能灵活运用while循环解决数学和生活中的一些实际问题。
“探究实践一”创设了一个与学生日常生活紧密联系的志愿者植树问题,教师可先引导学生进行算法描述,进而再编写程序解决问题。
“实践探究二”是一个经典的数学问题:求两个正整数的最大公约数。教师可先引导学生思考,如何求两个正整数的最大公约数。教材中介绍的是欧几里得算法,也叫辗转相除法。为了更形象地帮助学生理解欧几里得算法,建议教师可引导学生画出欧几里得算法的流程图,然后根据流程图编写程序代码。
“小试身手”要求学生利用“倍增法”求两个数的最小公倍数。如果学生能用其他算法编写程序求解问题,是值得鼓励的,此处不必限定学生的思维。
“小试身手”的参考程序:
sum1=int(inpu
sum1=int(input())
sum2=int(inpu
sum2=int(input())
sum=sum1
while sum%sum2!=0:
sum=sum+sum
n+sum1
print(sum)
“实践探究三”是一个非常有趣的“猜数游戏”题。本题的难点在于随机函数的用法,这里只要求学生会用即可。另外要注意设置一个统计变量,用于统计猜测的次数。
“探究实践四”实际上是著名的“斐波那契数列”问题。教师可引导学生寻找数列中数字之间的规律,找出递推公式,运用递推算法求解本题。递推算法是一种基本的、重要的算法,理解并掌握递推算法,可解决许多实际问题。
(三)巩固提升
第1题参考程序:
#角谷猜想
x=int((input("请输入一个大于1的整数:“))
count=0 #统计变换次数
hile(x>1):
if x%2==0:
x=x*3+1
print(x,end="")
count=count+1
print()#输出一个换行
print("一共变换了",count,"次。”)
第2题参考程序:
(四)成果分享
“成果分享”可以分小组交流学生编写的程序,每个小组选出编写思路不同的程序参与班级展示交流,在交流、评选、展示过程中,可以让学生总结回顾本节课学到的知识和操作技能,进行思维的碰撞。
五、教学评价设计
本课的主要内容都包含在四个探究实践中。教师可以根据课堂上学生的表现,依据SOLO分类评价理论进行过程性评价;也可依据SOLO分类评价理论对学生的操作水平和程序完成情况进行分级评价。
六、补充资料
本课的“知识链接 功能强大的模块”,属于补充性学习材料,为选学内容,建议学有余力的学生也能掌握本部分知识与技能。
七、教学反思