资源描述
活动九 体验循环结构程序设计
精品文档
活动九 体验循环结构程序设计
教学目标:
1.知识
(1) 了解For循环与Do…Loop循环语句的格式及作用。
(2) 了解ListBox控件的常用属性及其使用方法。
2.技能:
体验For循环语句、Do…Loop循环语句在实际生少中的应用
3.情感
(1) 鼓励学生对知识进行迁移,完成创新活动,提高教学的实效性。
(2) 培养学生探究精神与独立操作能力。
课时:
3课时
重点与难点:
1.教学重点:
分析问题的循环性质、构建表达循环结构算法,建立起循环程序设计思维架构
2.教学难点:
如何将这么多的学习内容有机结合在一起,让学生能够接受。
教学方法:
演示法、练习法、讨论法
教学准备:
1.教学环境。
配有黑板或白板的多媒体网络教室
2.教学资源
辅助教学使用的程序,存放学生练习的文件夹。
教学过程:
教学环节
教师活动
学生活动
设计意图
导课
引言:通过前面4节谭的学习,大家越来载了不起了,知道了顺序结构程序设计,以知道了分支结构程序设计。我们再来看一类问题。
听课
单刀直入,进入新的课程
提出问题
问题1 在电视歌手大奖赛中,经常有10个评委为参赛选手打分,分数为1到10分。选手的得分为:去掉一个最高分和一个最低分后其余8个分数的平均值
听课、发言。
选择学生熟悉的问题。
人工解决问题
我们采用人工方法来求选手得分,大家觉得如何求呢?
我们一起寅出解决方案。
1、找出这10个得分中的最大数max和最小数min
2、求10个选手得分的和sum
3、求选手得分为(sum-max-min)/8
人工方法比较容易解决问题的主要原因是人有智能,10个数,眼睛看一遍就知道最大值和最小数,求10个数的和也简单,将10个数加起来即可。
讨论人工解决方案
从学生熟悉的知识入手。
求最大数得法,循环结构的概念
如何让计算机实现呢?
分析人工方法如何求10个得分中的最大数max的过程。
1、看第1个数时,第1个数即为此时的最大数max的过程。
2、看第2个数时,会怎么做呢?
将第2个数与max比较,如果第2个数大于max,那么最大数max的值为第2个数,不由不写第2个数。
3、看第3个数时,会怎么做呢
与第2个数的做法一样
4、显然看第4~10个数都是这么做的。当10个数看完后,最大数即为max
现在我们用算法描述方式,写出上棕最大值的过程。
因为得分值在1~100间,可先简单地设max值为0
1、设max的初值,max=0
2、读入一个得分存放在score中。
3、如果score>max,那么max=score
4、重复2、3的操作,直到10个得分读完为止。
5、max即为这10个分数中的最大数。
我们把这种得利作同样操作的过程,叫循环结构。为了表达循环结构算法,程序设计语言中通常提供了循环语句与之对应。
请学生写出10个得分中的最小数min的算法
听课、思考,与教师交流互动
实践循环结构算法
知识迁移,导出新知识
问题的完整算法
理解了用循环结构求最大值和最小值的算法,现在我们来讨论解决该问题的完整算法。
设变理max存放最大值,变量min存放最小值,变量sum存放和,变量score存放分数。
1、设初值,max=0,min=10,sum=0。
2、读入一个得分存在放在score中。
3、将读入的得分求和,sum=sum+score
4、如果score<min,那么min=score.
5、如果score<min,那么min=score。
6、重复2~5的操作,直到10个得分读完为止。
7、通过以上步骤可求出max、min的值。
8、求选手得分公式为(sum-max-min)/8,并输出。
对该算法中,分数求和用sum=sum+score方式,大家可能会不理解,在数学中这样的等式是不成立的。
程序设计中,“=”不是相等概念,是赋值的概念,sum=sum+score的作用是将原来的sum值与score相加后放入到sum存储单元格中,获得新的值。做10次sum=sum+score操作,即将分数求和。
可以用桶装东西来理解,当我们把一件东西放入桶中,桶的值为原先桶的值加上放入的东西。不断向桶中放东西,桶的值不断累加求和。
听课,思考,与教师交流互动。
实践循环结构算法。
理解累加求和的思维方式。
知识迁移,导出新知识。
学生首次接触累加求和,尽量用形象化的对比让学生理解。了解生活中的很多操作思想是可以迁移的。
界面设计
讨论解决该问题界面需要哪些元素,讨论设计界面样式。
1、如果希望输入数据的同时将数据保留显示,可介绍ListBox控件对象的使用。
界面设计,参考教材P97,P101 表态-1“歌手大赛评分”程序用到的及其属性说明,实施界面设计,可以改变界面样式
讨论、设计界面
实施界面设计
学习如何根据问题进行界面设计。
输入程序
双击“开始”按钮,产生按钮单击触发事件过程。
Private Sub Command1_click()
End Sub
输入P102程序。
双击“结束”按钮,产生按钮单击触发事件过程。
Private Sub Command2_click()
End Sub
输入end
在教师引领下完成相应的输入程序操作
让学生体验程序输入过程,在输入程序过程中,学生会有许多疑问,疑问本身就是最好的老师。
运行程序
让学生运行程序,一运行程序,学生就会有疑问,与以前不同,程序弹出对话框
引入Inputbox对话框的使用
运行程序。
利用对话框输入数据
让学生进一步学习如何运行程序。
了解程序、了解循环结构程序设计
讲解程序的组成。
1变量的定义。
2、给变量和对象赋值。
3、For i=1 To 10
score=Val[Inputbox](“请输入第”&i&“平为人打分”,“输入分数”)
List1.AddItem(score)
If score>max Then max=score
If score<min Then min=score
Sum=sum+score
Next i
For与Next语句构成一个循环结构,控制其间的循环语句执行10遍。
计算机执行该段程序时,让程序段重复执行多遍,我们把宁产结构的程序称为循环程序设计,For…Next语句是表达循环结构的程序语句中的一种。
4、使用ListBox显示和结果数据,
听课、思考、理解、提问
在学生理解算法、理解界面设计、体验了程序运行基础上,学生读懂程序。理解循环结构程序设计的形式和概念。
修改程序
如果评委人数改变了,如评委人数变成15人,程序应如何修改呢?
实现程序的修改
进一步理解For循环语句的作用。
创新活动
以小组合作方式 ,让学生尝试探究、实践教材P103的“创新活动”。
小组诗集如何实现“创新活动”的内容
让学生大胆实践,失败没关系。
提出新的问题
问题2:角谷猜想又称考拉兹猜想,3n+1猜想、哈塞猜想、乌拉姆猜想或叙拉古猜想,是日本数学家角谷静夫发现。它是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此变换,最终都能够得到1。
取一个数字,如n=6,根据上述变换,得出6→3→10→5→16→8→4→2→1.(步骤中最大的数是16,共7个步骤)
如n=11,根据上述变换,得出11→34→17→52→26→13→40→20→10→5→16→8→4→2→1.(步骤中最大的数是52,共13个步骤)
到目前为止,国际上还没有人证明这个猜想是对的。你有办法证明吗?
听课、发言
选择学生熟悉的问题
人工问题
对于某个数n进行证明。
将数n不断实施如下运算,如果为奇数,则n*3+1,如果为偶数,则n除以2。看看能否得到1.
显然,这个问题人脑不如电脑。
讨论人工解决方案
从学生熟悉的知识入手。
算法
试试用算法形式描述
1、输入n
2、如果n位奇数,那么n变换为n*3+1,否则,n变换后的n的值。
3、输出变换后的n值
4、当n>1时,重复2、3的步骤。
显然,这是一个循环结构,思考一下该算法的循环结构与问题1算法的循环结构有何不同。
一个重复次数确定。
一个重复次数不确定。
尝试写算法。
思考,讨论
知识迁移,导出新知识
界面设计
讨论解决该问题软件界面需要哪些元素。讨论设计界面样式。
界面设计,参考教材P97图9-2,P105表9-3“验证‘角谷猜想’”程序设计用到的控件及其属性说明,实施界面设计。
教材中用文本框输出过程值,试一试能否用前面学习的ListBox显示过程中n的值。
讨论、设计界面。
实施界面设计。
学习如何根据问题进行界面设计。
输入程序
双击“开始”按钮,产生按钮单击触发事件过程。
Private Sub Command1_click()
End Sub
在过程中输入P106的程序。
或如下程序:(n的过程值输出用ListBox)
Private Sub Command1_click()
Dim As Long
List1.Clear
n=Text1.Text
Do While n>1
If n Mod 2=0 Then n=n\2 Else n=n*3+1
List1.AddItem n
Loop
End Sub
End Sub
在教师引领下完成相应的输入程序操作
让学生体验程序输入过程,在输入程序过程中,尝试读懂程序。
运行程序
输入不同的n的值。运行程序,证明“角谷猜想”。
运行程序
让学生在运行程序过程中,理解循环的概念。
了解程序、了解循环结构程序设计
讲解程序的组成:
1、Dim n As Long的作用是定义一个n变量,该变量的值,该变量的值为-2147483648~2147483647之间的整数。
2.n=Text1.Text,从文本框中读入数据。
3、Do while n>1
If n Mod 2=0 Then n=n\2 Else n=n*3+1
List1.AddItem n
Loop
当n>1 时,重复执行循环体语句,遇n<=1退出。
该程序段为循环结构设计。Do…Loop语句是另一种表达循环结构的程序语句。
4、List.AddItem n
使用ListBox显示过程数据。
听课、思考、理解
在学生理解算法、理解界面设计、体验了程序运行基础上,学生读懂程序。进一步理解循环结构程序设计的形式和概念。
循环语句表达的区别
思考:本问题的循环结构能否用For…Next语句实现?为什么?
讨论
了解不同形式的循环结构使用不同形式的循环语句
创新活动
以小组合作方式,让学生尝试探究、实践教材P107的”创新活动”
小组讨论如何实现“创新活动”的内容
让学生大胆实践,失败没关系
总结
程序设计的是问题分析与算法确定,程序计语言是实现算法的工具,因此,语言可以多式多样,正如写一篇文章,核心是文章的内容构思,可以用不同的语言来描述。跟大家熟悉的中文、英文一样,不同的计算机语言,算法与程序父均由三种基本结构产生了今天计算机应用无数软件,这就是程序设计的魅力所在。
听课、思考、理解
让学生建立起程序设计思维基本架构。
教学反思:
1.突出的教学重点是否在教学过程中得到落实。
2.教学难点在教学过程中是否得到解决,学生是否在学习过程中掌握了难点。
3.学生在学习中是否获得了“原来是这样”的感悟。
收集于网络,如有侵权请联系管理员删除
展开阅读全文