中小学教育资源及组卷应用平台
《让计算机猜价格》教学设计
课题 让计算机猜价格 单元 三单元 学科 信息技术 年级 九年级
教材分析 《让计算机猜价格》这一课时教材编排了“分析问题,设计算法,编写条件结构的程序,运行,调试程序,说说做做和知识链接”的系列学习活动,旨在引导学生了解计算机中对数据的一种基本操作“查找,引导学生对数据的查找产生概念,学会理解与应用,这些学习对于初中学生来说是非常有必要的,不仅可以增加学生知识,同时也能增强计算机编程能力和科学思维,提高学生信息素养。教材编排合理,教学环节寓教于乐,贴近学生生活实际,符合九年级学生认知特点。
学习目标 1.信息意识:学习计算机中对数据的一种基本操作“查找”;能理解和运用概念。2.数字化学习与创新:通过实践活动,掌握将编程实现另一种经典查找算法,并比较它与顺序查找法的不同,能够在实际情境下运用所学知识,解决实际问题。3.计算思维:具备用计算机编程结构解决问题的能力。4.信息社会责任:激发对计算机编程的兴趣和热情,将编程运用到生活中,锻炼自身的道德情操和品德修养,培养优秀的价值观和行为准则。
重点 学习将编程实现另一种经典查找算法,并比较它与顺序查找法的不同。
难点 学会对数据进行查找。
教学过程
教学环节 教师活动 学生活动 设计意图
导入新课 1.导入:师: 计算机解决问题的核心是算法。人们在实践过程中,针对一些经常出现的基本问题总结了一些常用算法。这些算法是解决复杂问题的基础,具有很强的实用性。通过前两个单元的学习,我们已经了解了使用计算机解决问题的一般流程,并初步认识了 Pvthon 语言。在本单元中,我们将尝试综合利用所学知识,编程实现一些常用算法。通过前几个课时的学习,我们已经掌握了一些代码知识,我们今天将更深入学习,丰富代码知识。 回忆所学,知道本节课的学习内容 激发学生学习兴趣,调动积极性
讲授新课 一、分析问题要解决的问题如下:有一件价格不高于 100元的商品(价格为整数),现要让计算机猜测其实际价格每次猜测后,可以通过输入告知计算机猜测价格与实际价格的大小关系,那么,如何用尽可能少的次数猜中商品的实际价格 除了顺序查找外,还可以采用二分查找法。二分查找法也称折半查找法,是一种效率较高的查找方法。我们将所有可能价格按从小到大的顺序排列,以中间值为界,将其余数值分为中间值前、中间值后两个部分。 在查找时,先将中间值与目标值比对,如果相等则查找成功,如果不相等则比较中间值与目标值的大小,并判断出目标值处于中间值前还是中间值后。将目标值所在区间再次分为中间值、中间值前和中间值后重复之前的操作,直到查找到目标值为止。中间值的选择可按如下规则进行:假设最低价格为 low,最高价格为 high,则(low+high)/2 为中间值,计算结果舍去小数位。1.例如,设价格范围为 1到9,实际价格为 3,则三次查找即可找出实际价格2.第一次查找,取中间值 5,与目标值 3 比较,由于 5>3,可知目标值在中间值前第二次查找,在1到4之间,取中间值 2,与目标值3 比较,由于 2<3,可知目标值在中间值后第三次查找,在 3 到4之间,取中间值 3,与目标值比较,发现两者相等,查找完成提示板:在使用二分查找法时,所有可能价格可以按从小到大的顺序排列,也可以按照从大到小的顺序排列,但不能无序排列。顺序查找法则没有排序限制,我们可以将所有可能价格任意排列,之后从第一个数字开始向后验证。说说做做针对 1到100之间的任意整数,使用二分查找法,最多需要多少次查找 使用顺序查找法,最多需要多少次查找 哪种查找方法效率相对更高 假设用顺序法查找1到100数字的任意数字,那么最多需要100次查找。而二分查找取50先猜大小,如果大了就猜75以此类推,每次取中间的值,从而每次都将余下的数字排除一半,那么最多7次就可以猜到。二分法查找的效率最高。二、设计算法二分查找法需要多次执行相似操作,因此,可以使用循环结构。另外,每次猜测后要判断猜测价格与实际价格的大小关系,需要使用选择结构。如下所示,中间值用变量 mid 表示。每次查找后,将 mid 与实际价格比对,若相等则查找成功;若mid大于实际价格,则在low到mid-1间继续查找;若mid小于实际价格则在mid+1到 high 间继续查找。可以设置变量i来统计查找次数,每次查找时i加 1,查找完成后输出实际价格的值和查找次数。算法流程图三、编写程序提示板:猜到正确答案后,程序不再需要执行下一次循环。这时可以使用 break 语句,在循环条件仍然成立的情况下终止循环说说做做尝试画出顺序查找算法的流程图,写出相应程序,比较两种查找算法的不同运行,调试程序数字化学习:二分查找法要求待查找数据有序排列,但如果此条件不满足,就需要先排序再查找。上网学习并参考“知识链接”,了解冒泡排序法。冒泡排序法:是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把它们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。知识链接 算法的效率针对同一个问题,可以采用不同的算法。虽然不同算法得出的最后结果是相同的,但它们的效率却可能大不相同。例如,查找算法的效率取决于查找的次数。与顺序查找法相比,二分查找法的效率要高得多,但二分查找法必须基于有序排列的数据。对于查找规模(数据量 ) 较小的无序数据,顺序查找法也是一种常用的方法。知识链接 排序算法一冒泡法冒泡法的思想是: 假设有从左到右排列的n个数,将其从上到下排列。先从上到下依次比较相邻的两个数,使小的在上大的在下,那么第 1回比较 n-1 次后,把最大数排到了最下面。第 2 回排序在前面的 n-1个数中进行,比较 n-2 次后把次大的数排到倒数第二位,依此类推,直到第 n-1 回排序将次小的数排到了第二位,剩下一个数不用比较,排序结束。算法的整体思路是逐次让大的数往下沉,而让小的数像气泡一样不断向上冒,所以该算法被形象地称为“冒泡法”o对 5个数 9、5、3、8、1进行排序的过程:第 1回排序的过程如下,一共进行 4 次比较,每次较大的数向下移动,第 1回排序结束后最大数 9 移动到最下面的位置;9的位置确定后,接下来对 5,3,8,1再进行排序,以此类推,各回排序:第1回排序确定9的位置,第2回确定8的位置,第3回确定5的位置,第4回确定 3 的位置,还剩下1个数,不需要再排序,排序结束知识拓展:计算机排序方法的拓展插入排序插入排序是一种简单且高效的排序算法。它的基本思想是将待排序序列分为已排序和未排序两部分,初始时已排序部分只有一个元素然后依次将未排序部分的元素插入到已排序部分的适当位置,直到所有元素都插入完毕。具体实现时,可以通过比较和移动元素的方式来确定插入位置。插入排序的时间复杂度为 O(^2),但在实际应用中,插入排序往往比冒泡排序更高效。选择排序选择排序是一种简单但低效的排序算法。它的基本思想是每次从待排序序列中选择最小的元素,与当前位置的元素交换位置。具体实现时,可以通过一次遍历找到最小元素的位置,并与当前位置的元素交换。然后,从下一个位置开始,重复以上操作,直到所有元素都排好序为止。选择排序的时间复杂度为 O(^2),与冒泡排序相同,但由于减少了元素交换的次数,因此比冒泡排序稍微高效一些。作业布置 请同学们复习本节课学习的内容,用二分法的方式解决问题,并且用二分法编写自己感兴趣的简单的程序语言。 学生理解、思考自主学习反复探索思考、讨论、编程调试验证实施任务,思考、表达见解学生记录思考问题知识拓展学生完成课后练习 将生活引入学习中让学生在反复探索尝试的过程中训练思维方式,理解变量可控的重复执行让学生形成用计算机处理问题的思维方式,真正变被动学习为主动。让学生体验Python 编程的强大功能,初步感受用编程技术驾驭计算机高效解决问题。拓展延伸学生知识,增加学生知识技能通过结合所学知识完成练习,拓展延伸学生知识,增加学生知识技能
课堂练习 完成书上的说说做做 学生完成课堂练习 巩固所学知识
课堂小结 1.学习了计算机中对数据的一种基本操作“查找”2.学习了用二分法解决问题并编写程序语言。3.学习了将编程实现另一种经典查找算法,并比较了它与顺序查找法的不同 学生总结本节课的学习内容 总结概括本节课的学习知识内容
板书 一、分析问题二、设计算法三、编写程序四、运行,调试程序五、单元挑战
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
HYPERLINK "http://www.21cnjy.com/" 21世纪教育网(www.21cnjy.com)(共31张PPT)
《编程解决问题-
常用算法的实现》
活动一:让计算机猜价格
沪教版 九年级上册
新知导入
计算机解决问题的核心是算法。人们在实践过程中,针对一些经常出现的基本问题总结了一些常用算法。这些算法是解决复杂问题的基础,具有很强的实用性。通过前两个单元的学习,我们已经了解了使用计算机解决问题的一般流程,并初步认识了 Pvthon 语言。在本单元中,我们将尝试综合利用所学知识,编程实现一些常用算法。
新知导入
学习活动导览
编程解决问题
1.让计算机猜价格
分析问题
设计算法
运行,调试程序
编写程序
2.枚举商品搭配方法
分析问题
设计算法
编写程序
运行,调试程序
内容总览
学习目标
01
新知导入
02
分析问题
03
设计算法
04
目录
05
编写程序
06
运行、调试程序
09
07
10
08
课堂总结
知识链接
说说做做
课后作业
学习目标
1.信息意识:学习计算机中对数据的一种基本操作“查找”;能理解和运用概念
2.数字化学习与创新:通过实践活动,掌握将编程实现另一种经典查找算法,并比较它与顺序查找法的不同,能够在实际情境下运用所学知识,解决实际问题
3.计算思维:具备用计算机编程结构解决问题的能力。
4.信息社会责任:激发对计算机编程的兴趣和热情,将编程运用到生活中,锻炼自身的道德情操和品德修养,培养优秀的价值观和行为准则。
分析问题
要解决的问题如下:有一件价格不高于 100元的商品(价格为整数),现要让计算机猜测其实际价格每次猜测后,可以通过输入告知计算机猜测价格与实际价格的大小关系,那么,如何用尽可能少的次数猜中商品的实际价格
分析问题
除了顺序查找外,还可以采用二分查找法。二分查找法也称折半查找法,是一种效率较高的查找方法。我们将所有可能价格按从小到大的顺序排列,以中间值为界,将其余数值分为中间值前、中间值后两个部分。 在查找时,先将中间值与目标值比对,如果相等则查找成功,如果不相等则比较中间值与目标值的大小,并判断出目标值处于中间值前还是中间值后。将目标值所在区间再次分为中间值、中间值前和中间值后重复之前的操作,直到查找到目标值为止。
分析问题
中间值的选择可按如下规则进行:假设最低价格为 low,最高价格为 high,则(low+high)/2 为中间值,计算结果舍去小数位。
1.例如,设价格范围为 1到9,实际价格为 3,则三次查找即可找出实际价格
2.第一次查找,取中间值 5,与目标值 3 比较,由于 5>3,可知目标值在中间值前
3.第二次查找,在1到4之间,取中间值 2,与目标值3 比较,由于 2<3,可知目标值在中间值后。
4.第三次查找,在 3 到4之间,取中间值 3,与目标值比较,发现两者相等,查找完成
分析问题
提示板:在使用二分查找法时,所有可能价格可以按从小到大的顺序排列,也可以按照从大到小的顺序排列,但不能无序排列。
顺序查找法则没有排序限制,我们可以将所有可能价格任意排列,之后从第一个数字开始向后验证。
说说做做
针对 1到100之间的任意整数,使用二分查找法,最多需要多少次查找 使用顺序查找法,最多需要多少次查找 哪种查找方法效率相对更高
说说做做
假设用顺序法查找1到100数字的任意数字,那么最多需要100次查找。而二分查找取50先猜大小,如果大了就猜75以此类推,每次取中间的值,从而每次都将余下的数字排除一半,那么最多7次就可以猜到。
二分法查找的效率最高。
新知讲解
二、设计算法
二分查找法需要多次执行相似操作,因此,可以使用循环结构。另外,每次猜测后要判断猜测价格与实际价格的大小关系,需要使用选择结构。
如下所示,中间值用变量 mid 表示。每次查找后,将 mid 与实际价格比对,若相等则查找成功;若mid大于实际价格,则在low到mid-1间继续查找;若mid小于实际价格则在mid+1到 high 间继续查找。
可以设置变量i来统计查找次数,每次查找时i加 1,查找完成后输出实际价格的值和查找次数。
新知讲解
算法流程图
开始
low=1
high=100
i=0
low<=high
是
i=i+1
mid=(low+high)//2
输出mid
输入判定结果tip
tip=”z”
是
输出答案mid,次数i
结束
否
查找失败
tip=”x”
是
low=mid+1
tip=”y”
是
high=mid-1
i=i-1
否
输出错误信息
编写程序
#设定最小值
1ow=1
#设定最大值
high=100
#初始化计数变量
1=0
#查找成功标志
flag=0
while(1ow<=high):
#次数加1
1=1+1
#计算中间值
mid=(low+high)//2
print(“答案是“,mid,”吗?”)
print(“:若答案大于该数字,请输入x:若答案小于该数字,请输入y”,若答案大于该数字,请输入z”)
#等待判定
编写程序
tip=input()
#若猜测值与答案相等,输出结果,退出循环
if tip==“z”
print(“正确答案为“,mid,”, 共猜测",1."次")
flag=1
break
#若猜与答案不相等,缩小区间,继续查找
elif tip==”x”:
low=mid+1
elif tip==”y”:
high=mid-1
else:
i=i-1
print(“只能输入x,y,z三种字母,请重新输入”)
if(flag==0):
print(“查找失败“)
编写程序
提示板:猜到正确答案后,程序不再需要执行下一次循环。这时可以使用 break 语句,在循环条件仍然成立的情况下终止循环。
说说做做
尝试画出顺序查找算法的流程图,写出相应程序,比较两种查找算法的不同。
说说做做
运行,调试程序
随意设想一个 1到 100 间的整数,运行程序,当计算机做出猜测后,告知计算机猜测结果与答案间的大小关系,重复几次后计算机将猜出正确答案。
观察运行结果,分析程序有无错误。若有,尝试解决。
>>>
答案是50吗?
若答案大于该数字,请输入x:若答案小于该数字,请输入y:若答案等于该数字,请输入z
答案是75吗?
若答案大于该数字,请输入x;若答案小于该数字,请输入y:若答案等于该数字,请输入Z
答案是62吗?
若答案大于该数字,请输入x;若答案小于该数字,请输入y:若答案等于该数字,请输入z
答案是68吗?
若答案大于该数字,,请输入x:若答案小于该数字,请输入y;若答案等于该数字,请输入z
答案是65吗?
若答案大于该数字,请输入x:若答案小于该数字,请输入y:若答案等于该数字,请输入z
正确答案为 65,共猜测 5 次
>>>
运行,调试程序
数字化学习:二分查找法要求待查找数据有序排列,但如果此条件不满足,就需要先排序再查找。上网学习并参考“知识链接”,了解冒泡排序法。
运行,调试程序
冒泡排序法:是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把它们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
新知讲解
知识链接 算法的效率
针对同一个问题,可以采用不同的算法。虽然不同算法得出的最后结果是相同的,但它们的效率却可能大不相同。
例如,查找算法的效率取决于查找的次数。与顺序查找法相比,二分查找法的效率要高得多,但二分查找法必须基于有序排列的数据。对于查找规模(数据量 ) 较小的无序数据,顺序查找法也是一种常用的方法。
新知讲解
知识链接 排序算法一冒泡法
冒泡法的思想是: 假设有从左到右排列的n个数,将其从上到下排列。先从上到下依次比较相邻的两个数,使小的在上大的在下,那么第 1回比较 n-1 次后,把最大数排到了最下面。第 2 回排序在前面的 n-1个数中进行,比较 n-2 次后把次大的数排到倒数第二位,依此类推,直到第 n-1 回排序将次小的数排到了第二位,剩下一个数不用比较,排序结束。算法的整体思路是逐次让大的数往下沉,而让小的数像气泡一样不断向上冒,所以该算法被形象地称为“冒泡法”。
新知讲解
对 5个数 9、5、3、8、1进行排序的过程:
第 1回排序的过程如下,一共进行 4 次比较,每次较大的数向下移动,第 1回排序结束后最大数 9 移动到最下面的位置,如图 3-1-4 所示。
新知讲解
9的位置确定后,接下来对 5,3,8,1再进行排序,以此类推,各回排序:
第1回排序确定9的位置,第2回确定8的位置,第3回确定5的位置,第4回确定 3 的位置,还剩下1个数,不需要再排序,排序结束
知识链接
知识拓展:计算机排序方法的拓展
插入排序
插入排序是一种简单且高效的排序算法。它的基本思想是将待排序序列分为已排序和未排序两部分,初始时已排序部分只有一个元素然后依次将未排序部分的元素插入到已排序部分的适当位置,直到所有元素都插入完毕。具体实现时,可以通过比较和移动元素的方式来确定插入位置。插入排序的时间复杂度为 O(^2),但在实际应用中,插入排序往往比冒泡排序更高效。
知识链接
知识拓展:计算机排序方法的拓展
选择排序
选择排序是一种简单但低效的排序算法。它的基本思想是每次从待
排序序列中选择最小的元素,与当前位置的元素交换位置。具体实现时,可以通过一次遍历找到最小元素的位置,并与当前位置的元素交换。然后,从下一个位置开始,重复以上操作,直到所有元素都排好序为止。选择排序的时间复杂度为 O(^2),与冒泡排序相同,但由于减少了元素交换的次数,因此比冒泡排序稍微高效一些。
课堂总结
1.学习了计算机中对数据的一种基本操作“查找”。
2.学习了用二分法解决问题并编写程序语言。
3.学习了将编程实现另一种经典查找算法,并比较了它与顺序查找法的不同。
作业布置
请同学们复习本节课学习的内容,用二分法的方式解决问题,并且用二分法编写自己感兴趣的简单的程序语言。
谢谢
21世纪教育网(www.21cnjy.com)
中小学教育资源网站
兼职招聘:
https://www.21cnjy.com/recruitment/home/admin