选择法排序程序设计导学案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章算法实例(三)
——选择排序程序设计导学案一、课程学习目标
二、基础知识建构
1、选择排序法
选择排序的基本思想:
在所有的记录中从前往后
....选出
最小
..(.大.).的数据,把它与第一个
...数据交换,然后在
其余
..的记录中从前往后
....再选出最小
..(大)
...的数据与第二个
...数据交换,依此类推,直至所有数据排序完成。
思考:选出最小(大)的数据过程?
范例1:数组D(1to 8)中的8个数据如下:12、15、24、8、31、15..、11、10。
现利用选择排序法进行升序排列。
各趟的排序后的结果为:
原始数据12 15 24 8 31 15..11 10
第一趟结果8 15 24 12 31 15..11 15
第二趟结果8 10 24 12 31 15..11 15
第三趟结果8 10 11 12 31 15..24 15
第四趟结果8 10 11 12 31 15..24 15
第五趟结果8 10 11 12 15..31 24 15
第六趟结果8 10 11 12 15..15 24 31
第七趟结果8 10 11 12 15..15 24 31
探究学习:
请把数组D(1to 8)中的8个数据如下:4、26、12、26..、8、31、17、21。
现利用选择排序法进行排序。
并写出各趟排序后的数据的序列。
第一趟结果
第二趟结果
第三趟结果
第四趟结果
第五趟结果
第六趟结果
第七趟结果
选择排序法程序界面与代码:
Dim d(1 To 8) As Integer '定义一个数组
Private Sub Command1_Click() '产生8个随机数
Dim i As Integer
i=1
For i = 1 To 8
‘产生[0,100)之间的随机数存放在数组d中List1.AddItem Str(d(i))
Next i
End Sub
Private Sub Command2_Click() '对8个数进行选择法排序
Dim i as Integer, j as integer, k as integer , min as integer
i=1
For i = 1 To 7 '选择第i个数假设为最小的数
Min = i
For j = i + 1 To 8 '如果找到更小的,用min记住它的编号
If Then Min = j
Next j
If Min <> i Then '如果最小的数所在的位置不是i,则交换
End If
For i = 1 To 8
'在列表框list2中显示排序后的数据Next i
Next i
End Sub
Private Sub Command3_Click() '清空列表数据
‘清空列表框list1
‘清空列表框list2
End Sub
3、冒泡排序与选择排序的比较
①、对两个相同的数据的排序
在冒泡排序后,(填“不会”或“可能会”)改变原数据中相同数据的
原本的先后顺序
在选择排序后,(填“不会”或“可能会”)改变原数据中相同数据的
原本的先后顺序
②、排序的效率
选择排序比冒泡排序效率要(数据交换次数的多少)
③、对n个数据排序的趟数
均要进行趟
三、小结
1、选择排序的过程;
2、选择排序算法的程序设计;
3、冒泡排序与选择排序的比较;
《程序的选择结构》教学设计
【课题名称】:《程序的选择结构》
(选自粤教版教材信息技术选修1《算法与程序设计》一书第二章第3
节,本节计划分两个课时,此教学设计为第一课时)
【教学目标】:
1、理解程序的选择结构,掌握VB程序中的条件语句的构建,掌握关系
表达式、逻辑表达式等程序设计语言的基本知识;
2、通过对问题的分析、设计、解决来真正了解计算机解决问题的过程,
体验编程解决问题的乐趣;
3、培养学生们对问题宏观分析的能力,多角度分析、处理,并能学以致
用,在收获知识的同时挖掘自己的潜力;
【学情分析】:
此次授课的班级为高一的少年班,他们的信息技术课程最新的进度刚好是必修阶段的第四章——编制计算机程序解决问题,在必修课中,
他们已经了解了编程解决问题的大致过程,以及VB中的一些基本语句。
因此本节课的重难点设置如下:
教学重点:
VB中的条件语句的格式、能从实际问题中提炼做判断条件的表达式教学难点:
对实际问题分析出选择结构,提炼出条件表达式,并能用程序设计语言
来实现
【教法设计】:
采用“问题解决教学法”、“学科结合法”、“讲授法”
【学法设计】:
分析法、实践练习法
【教学过程】:(简)
(一)、导课(5分钟)
(二)、讲授
(三)、练习(包含课堂练习)
(四)、知识拓展
(五)、知识总结
【评价设计】
【教学过程】:简
(一)、生疑:
(二)、质疑:
(三)、练习(包含课堂练习)
(四)、知识拓展
(五)、知识总结
【教学过程】:
(一)、导课(5分钟)什么是选择结构
/*兴趣为主——引出主题——能理解选择及选择的条件控制*/
教师先提出“物联网”的概念,即物与物之间的相互连接。
物联网的实现能使我们的生活更方便。
比如可以根据外面光线来选择自动地拉合窗帘,天亮时把窗帘自动拉开,天黑时自动合上。
又或者为了保障家里的财产安全,设置防盗装置,当有人从门窗进入时,会发出警报信息,同时发送短信或视频到手机中。
这些都是根据某种情况或条件做出的选择,生活中我们自己也会遇到很多选择。
(可以让大家说说自己的选择)教师在屏幕上显示四个按钮,四个按钮后面分别对应四个活动,让同学们选择一个按钮,进行课堂活动。
其中四个活动分别设置如下:
按钮一活动:英文翻译。
按钮二活动:(游戏)看商品,猜价格。
按钮三活动:(游戏)计算自己的健康指数
按钮四活动:语文造句。
用“如果…那么…否则…”来造句
其中:活动一和活动四直接体现了选择,而活动二和活动三可以让学生谈谈哪里体现了选择。
教师来解释选择结构,并以两个选择结构为例,给出流程图,解释选择在程序中的实现过程,展开教学。
Y N
那么,这种选择结构在程序中是如何实现的呢?
(二)、讲授
/*尝试自主总结——选择语句的讲解——引出关系表达式——引出逻辑表达式,层层递进,讲练结合*/ 1、VB中选择结构的表示
教师给出两个编程实例,让学生们从中总结出选择语句的句式。
第一种表示:所有条件语句写在一行
If 条件Then 语句组1 Else 语句组2
给出例子,并介绍当满足条件时要执行的语句较多时,语句之间应该用“:”来分隔,而此时全部出现在一行可读性较差,由此给出语句的第二种格式:
第二种表示:强调在Then后进行回车换行。
If 条件Then
语句组1
Else
语句组2
End
举例:If x>=0 Then
y=x
print”该数非负,绝对值为”;y
Else
y=-x
print”该数为负数,绝对值为”;y
End
强调换行来写条件语句时,一定要有End 来表示条件语句的结束。
(*屏幕练习1*)
用户输入一个数,求解这个数的绝对值,教师给出程序,让同学们完成。
Private sub command1_Click()
n=inputbox(“请输入一个随机数:”)
If _________ Then
________________
Else
________________
End
End sub
教师总结:选择结构实际上是设置某些规则,根据对规则的条件判断来选择某部分进行操作。
流程图表示为:
而这里要判断的条件采用关系表达式来实现:
2、关系表达式
关系表达式是用关系运算符连接起来的式子。
关系运算符有:
运算符号= > < >= <= < > 含义等于大于小于大于等于小于等于不等于
关系表达式的值为逻辑值,即真(true)和假(false)。
举例:
5>7 12< >21 85>=70 “A”< ”B”“a” = ”A”
都是关系表达式,其中数值型的数据直接按大小关系比较得出真假。
而其他类型的数据则按其序号来比较,注意”a”和”A”不是相同的序号,”A”< ”a”
(*屏幕练习2*)
比赛选手晋级程序,三项单项成绩的总分高于210分晋级,否则淘汰。
Private sub command1_Click()
d1=inputbox(“请输入第一项单项分数:”)
d2=inputbox(“请输入第二项单项分数:”)
d3=inputbox(“请输入第三项单项分数:”)
sum =d1+d2+d3
If _________ Then
________________ ‘输出晋级信息 Else
________________ ‘输出淘汰信息 End End sub
在实际问题中,有的时候条件的判断并不是简单的、单一的关系判断,比如,上一道题中,若把晋级规则改变成“总分高于210且第一项成绩不低于80”,则分析此时的判断条件。
高于210: sum>210 单项不低于80: d1>=80
这两个条件要同时成立,此时需要了解VB 中的逻辑连接符。
3、VB 中的逻辑表达式
用逻辑连接符把关系表达式连接起来就成为了逻辑表达式。
常用的逻辑连接符有:
AND 与 两个表达式同时为真,结果才为真 OR 或 两个表达式有一者为真结果就为真
NOT 非 取反操作,表达式为假结果为真,表达式为真,结果为假 (*屏幕练习3*)
1、当希望几个条件都成立的时候,中间用 _____ 连接
2、当希望几个条件有一项成立即可的时候,中间用 _____ 连接
3、当希望某个条件不成立的时候,条件前面应加一个 _____ 因此,选手晋级程序的条件判断应该写为: sum>210 AND d1>=80
在这里,介绍一下所学过的几种运算符的优先级关系,即算术运算符、关系运算符和逻辑运算符同时出现时,按照先算术、后关系、再逻辑的顺序来执行。
(三)、练习(包含课堂练习)
/*抛出问题——引导学生分析、解决——实践算法*/ 判断下列数哪个不是水仙花数: 407 521 370 371
提示:水仙花数是指各个位数上的立方和刚好为此数数值。
比如153,刚好可以表示为3
33351153++=。
需要编写一个判断水仙花数的程序,用户从键盘随机输入一个三位整数,程序进行判断,若其是一个水
仙花数,则输出“该数是一个水仙花数”,否则输出“该数不是水仙花数!”
解决过程:先在纸上画出问题解决的流程图,再完善程序。
教师对问题进行讲解,给出例程。
(四)、知识拓展
/*问题提升——启发思考——拓展教材*/
刚才判断水仙花数的程序可以实现对任意三位数的判断,但若用户输入的数字不是三位数,可能会导致程序的错误。
因此可以对用户输入的数据位数进行判断,从而加以控制——输入为三位数时,判断水仙花数,否则输出出错信息。
启发学生思考,该如何实现?
实质上就是在输入的时候加一个条件语句,满足条件的时候进行水仙花数判断,否则给出出错信息。
给出例程的实现,进一步给大家介绍选择结构的嵌套——一个语句中的某一个分支中可以包含另外一个条件语句。
(五)、知识总结
选择结构在VB中的实现,关系表达式和逻辑表达式的掌握。
【板书设计】:。