(共27张PPT)
3.1
体验计算机解决问题的过程
第三章
算法基础
课题引入
人解决问题的过程
人解决问题的过程
1
观察分析问题
2
收集必要信息
3
判断推理
4
解决问题
根据已有的知识经验
按照一定的方法步骤
如果让你在5分钟内正确求解出以下的问题,你可以做到吗
如何利用计算机解决这个问题呢?
计算机解决问题
1
3
2
4
打印文档资料
打印机和电脑的合作
Excel表格
word,wps,记事本等等
利用程序设计语言编写程序
制作海报、工作文档
设计程序解决问题
财务报表
运用计算机解决问题的方式很多,程序设计就是其中一种。所谓程序设计就是从遇到的问题出发,分析问题,发现问题本质,选择设计相应的算法,通过程序设计语言来编写程序,最终实现问题的解决
分析问题
右边的所有的二元一次方程都可以归纳为以下格式
a
x^2+b
x
+c
=0
由此得出可以用公式法解所有的二元一次方程
X1=
X2=
设计算法
公式法求解二元一次方程
a
x^2+b
x
+c
=0
1.输入a,b,c的值
2.令d=b
b-4
a
c
3.如果
d>=0
计算
x1=
x2=
转步骤4
否则输出“方程无解”转步骤4
4.结束程序
简单地说,算法就是解决问题的方法步骤
编写程序
公式法求解二元一次方程
a
x^2+b
x
+c
=0
1.输入a,b,c的值
2.令d=b
b-4
a
c
3.如果
d>=0
计算
x1=
x2=
转步骤4
否则输出“方程无解”转步骤4
4.结束程序
a=input(“请输入a的值:”)
d=b^2-4
a
c
if
d>=0:
x1=((-1)
b
+sqr
(d))/2
a
x2=((-1)
b-
sqr
(d))/2
a
else:
print(此方程无解)
End
sub
为什么要把算法编写成程序设计语言
开学之际,同学们纷纷忙于购置各种学习文具,假设现在同学手中有50元的现金,用于购买下列物品,以何种方式搭配购买能够让资金最大化利用呢?
笔记本
单价:6元/本
签字笔
单价:5元/支
橡皮
单价:4元/块
第三章
算法基础
需求分析
问题描述:
三种商品单价分别为6元,5元,4元;
用于购买商品的总资金为50元;
需求:
现求三种商品分别的购买数量,可让资金刚好用完(要求每种商品的购买数量不得小于1)。
3.1体验计算机解决问题的过程
思
考
如果假设购买三种文具的数量分别为x,y,z
同学们是否可以据此列出含有x,y,z的数学方程来表达这一关系呢?
第三章
算法基础
小组讨论
讨论要求:
(1)列出含有x,y,z的求解方程
(2)分析x,y,z的取值是否存在界限范围,如果有,这个界限范围是多少?
(3)求解该方程的方法是什么?
3.1体验计算机解决问题的过程
第三章
算法基础
小组讨论
讨论要求:
(1)列出含有x,y,z的求解方程
(2)分析x,y,z的取值是否存在界限范围,如果有,这个界限范围是多少?
(3)求解该方程的方法是什么?
3.1体验计算机解决问题的过程
6x+5y+4z=50
极限情况下,假设y和z都为1,则x可取到最大值为6,同理,y有最大值为8,z有最大值为10
故,1
≤
x
≤
6,1
≤
y
≤
8,1
≤
z
≤
10
第三章
算法基础
问题转化
3.1体验计算机解决问题的过程
求解三元一次方程
6x+5y+4z=50
求三种商品的最佳购买搭配
搭配方案
方程的正整数解
第三章
算法基础
问题解决
3.1体验计算机解决问题的过程
由于三元一次方程6x+5y+4z=50不存在其它约束条件,可以尝试把x,y,z的取值都计算一次来判断其是否满足条件:
思路:
令y=1,z=1,令x=1,计算6x+5y+4z是否等于50;
令y=1,z=1,令x=2,计算6x+5y+4z是否等于50;
……
令y=1,z=1,令x=6,计算6x+5y+4z是否等于50;
……
令y=2,z=1,令x=6,计算6x+5y+4z是否等于50;
找到:x=6,y=2,z=1是方程的一个正整数解,但是……解唯一吗?
思
考
第三章
算法基础
问题反思
3.1体验计算机解决问题的过程
由于三元一次方程6x+5y+4z=50不存在其它约束条件,方程的正整数解可能存在多个。
且由于x,y,z的取值可能分别有6、8、12种,经排列组合计算,x,y,z可能的取值情况有
种。
也就是说,通过手工计算的方式,我们必须对所有的取值情况进行逐一计算,判断其是否满足等于50的条件,若满足,则该取值情况是方程解集中的一个,若不满足,则继续计算。
这种对变量一定取值范围内所有情况依次进行计算和判断的方法,称为遍历。
6
X
8
X
10
=
480
过程步骤
第三章
算法基础
3.1体验计算机解决问题的过程
需求分析
求最佳购买方案
问题转化
求三元一次方程6x+5y+4z=50正整数解集
设计算法
遍历所有取值可能
编写程序
用Python语言实现计算程序
调试运行
运行程序,得出结果
使用计算机解决问题的一般过程
在现实生活中,我们经常需要对数据进行统计、分析。当数据量不多时,我们可以采用人工方法来处理;然而,当数据量变多时,我们运用计算机来解决问题将是一种更高效、更便捷的方案。
第三章
算法基础
设计算法
问题转化:求解三元一次方程6x+5y+4z=50的所有正整数解
设计方案:通过遍历x,y,z在各自取值范围内的所有取值可能,逐一判断是否满足条件。
解决实施:
编程指的就是利用计算机程序语言设计、实现计算机应用程序的过程。
3.1体验计算机解决问题的过程
采用计算机对方程进行求解,由于不存在计算该问题的专门应用程序,考虑采用编程的方法编写计算程序进行解决。
编写程序
第三章
算法基础
3.1体验计算机解决问题的过程
Python是一种面向对象的高级程序语言,具有轻巧灵活的编程特点,可以用于快速开发简单易用的计算机应用程序。
Visual
Studio
Code,简称VS
Code,是微软公司开发的快捷源代码编辑器,支持多种程序语言,例如C、C++、Python、Java等。
编写程序
第三章
算法基础
3.1体验计算机解决问题的过程
代码编辑区
调试输出区
功能菜单区
编写程序
第三章
算法基础
3.1体验计算机解决问题的过程
调试运行
体
验
请根据老师的演示,尝试打开电脑上的“解三元一次方程.py”代码文件,并根据文件中的提示将代码补全,并运行程序,观察程序运行结果,得出结论。
第三章
算法基础
计算机解决问题的过程:
1、提出问题
2、问题转化
3、设计算法
4、编程实现
5、调试运行
思维方法:数学转化
将解决特定的实际问题转化为解决具有一般性的数学问题,这是利用计算机解决实际问题的关键。
例如在本课中,我们将“求解最佳商品购买方案”的问题转化为求解一个三元一次方程的正整数解集的问题,从而设计让计算机可以执行的算法。
3.1体验计算机解决问题的过程
课堂小结
调试程序
如果程序语法有错误,程序运行时计算机会给出提示信息,人们可根据提示修改程序,直到无错;
我们还需要对结果进行验证,因为逻辑错误或计算方法错误计算机无法检查。所以若出现后一种情况,可能需要返回前几步进一步修改,直到满意。
总结
1.计算机解决问题的步骤
1、分析问题:建立数学模型,确定“做什么”;
2、设计算法:寻找“如何做”,并描述精确步骤;
3、编写程序:编写程序的任务就是用一种计算机能接受的程序设计语言来描述问题求解的算法;
4、调试运行:计算机验证语法错误,编程者验证结果确定无逻辑、计算错误。
总结
2.人机问题解决对比(课本第7页)
总结
3.使用计算机解决问题的本质
计算机不会自己解决问题,但它可以帮助人们解决问题。
想要利用计算机解决问题,需要人们完成一系列的程序设计任务,把要解决的问题转化为计算机程序,让计算机来执行这个程序,达到利用计算机解决问题的目的。《体验计算机解决问题的过程》教学设计
宜良县第二中学
李文俊
课题
体验计算机解决问题的过程
使用教材
高中信息技术
必修1
《数据与计算》广东教育出版社2019版
学段
高一
课时
1课时
课程定位
本课是高中信息技术必修1《数据与计算》第三章《算法基础》的第一课,同时也是高中阶段学生开始学习算法与计算机程序设计相关内容的开篇课程,本课主要设计意图在于通过引导学生实际体验利用计算机编程解决实际问题的过程,来感受使用计算机解决问题相较于人工计算的优越性,并在此过程中,引导学生学会利用计算思维的相关方法,体验从数学角度对问题进行分解和分析,设计可行的计算方法,利用计算机技术进行实现来完成问题解决,以此培养学生的信息意识和计算思维。同时,学习运用Visual
Studio
Code+Python的数字化学习工具进行数据处理的过程也能提高学生的数字化学习与创新能力,培养学生的数字化学习习惯。
教学目标
体会人工解决问题与计算机解决问题的不同特点。(信息意识)
通过亲历项目“利用计算机编程计算商品购买最佳方案”问题的解决过程,经历计算机解决问题的一般过程。(计算思维)
通过经历项目问题分析、建立数学模型、设计解决方案、实现计算的过程,能初步规划项目解决方案。(计算思维)
认识Python语言,了解计算机程序的主要功能,能够修改简单的程序代码,体验程序设计的魅力。(数字化学习与创新)
教学重点
1、运用计算思维对具体问题进行分析和设计解决方案
2、计算机解决问题的一般过程
教学难点
1、运用计算思维对具体问题进行分析和设计解决方案
2、计算机解决问题的一般过程
学情分析
高中一年级学生已经初步具备了逻辑思维能力,对代数和方程等数学思想有了一定的理解,但对于使用计算机实际处理计算问题的过程与方法,以及数学方法在解决实际问题中的运用还比较陌生,故此,我选择采用研究“商品最佳购买方案”的问题来代替教材提供的项目范例,相较教材范例,前者更容易让学生理解,并且可以快速转化为学生熟悉的三元一次方程形式,让学生感受到数学转化这一计算思维方法的作用。
教学方法
讲授法、演示法、小组合作学习法
教学环境
计算机教室、Visual
Studio
Code+Python编译运行环境
教学过程
教学环节
教学内容
学生活动
设计意图
创设情境,提出问题
开学时同学们纷纷购买用于学习的各种文具,假如同学手中有50元现金,分别购买单价为6元的笔记本,单价为5元的签字笔,和单价为4元的橡皮,请问各种文具应该购买何种数量,才能让手中的资金最大化利用(即刚好用完)呢?
参与情景
通过情景再现,让学生切实感受身边的问题,并引出对问题进行数学角度的需求分析。
二、分析问题,建立数学模型
我们如果假设笔记本购买的数量为x,签字笔的购买数量为y,铅笔的购买数量为z,是否可以用数学方法将该问题转化为一个求解x,y,z的解的问题?
教师提出三个问题给学生进行小组合作交流来回答(以电子学案为基础):
列出含x,y,z的方程
(学生可列出方程6x+5y+4z=50)
该方程中,x,y,z的取值范围分别是多少?
(讨论时引导学生以极限取值法来获得x,y,z的最大取值)
取值范围为:
1<=x<=6;1<=y<=8;1<=z<=10
求解该方程的步骤是什么?
小组合作,交流讨论,得出结论
通过引导学生将实际问题转化为数学方程的求解,感受计算思维方法在解决实际问题中的应用。
三、体验人工计算解决问题的过程
根据同学们刚才讨论得出的结论,现在需要解该三元一次方程6y+5y+4z=50,我们需要让x,y,z分别在它们的取值范围内进行遍历,找出所有可能的取值情况,判断其和是否等于50。
提出几个可能的解,提问学生尝试进行判断其是否满足条件。(5个)
在这个过程中,请同学们思考两个问题:
总共需要计算多少种可能的取值情况?
(6
X
8
X10=480种,手工计算需要遍历所有可能)
满足条件的x,y,z的取值情况是否可能不唯一?
参与思考,回答问题,评估人工计算的难度和可行性。
体验人工计算解决问题带来的困难,进一步明确该问题解决的计算步骤,为后续使用计算机程序进行计算来代替人工解决作铺垫
四、利用计算机解决问题的过程
现在大家已经感受到,通过人工计算的方式求解该问题,不仅计算量浩大,还会出错,容易漏解、错解,所以,我们何不借助计算机来帮助我们解决这个问题呢?
教师讲授演示计算机解决问题的基本过程:
分析问题
将计算购买商品的最佳方案转化为利用计算机求解三元一次方程6x+5y+4z=50的所有解,将实际问题转化为数学问题。
(2)设计算法
归纳刚才讨论总结的解方程方法:分别遍历x,y,z的取值范围,判断每一种取值情况是否满足和等于50的条件,若满足,则此时x,y,z的值为方程的解,若不满足,则继续遍历。
(3)编写程序
向学生简单介绍Python程序设计语言,展示Visual
Studio
Code+Python环境下解该三元一次方程的程序代码。
参与思考
体验利用计算机编程解决问题的过程,了解计算机程序设计的基本流程,
调试运行
教师演示进行简单的代码修改和调试的方法,让学生自主尝试进行程序调试并运行,得出计算结果。
动手实践,体验调试程序运行的过程,得出计算结果,完成问题解决。
五,总结归纳
计算机解决问题的一般过程:
提出问题
分析问题,将问题转化为数学形式,并对其进行数学描述和分析
设计算法,对问题的数学形式进行分解,寻找其计算步骤,并用简洁的形式进行描述
编写程序代码
调试运行
参与思考,巩固提升
教学反思《3.1
体验计算机解决问题的一般过程》课程学习记录
班级:
姓名:
课题
3.1
体验计算机解决问题的一般过程
情景导入
现有50元可用资金,需购买三种商品如下:
笔记本;单元为6元/本;
签字笔:单价为5元/支;
橡皮:单价为4元/块
要求每种商品购买的数量不得少于1(至少1件)
问,应该以何种搭配方式进行购买,可以使资金(50元)刚好用完?
小组讨论,合作探究
现假设三种商品的购买数量分别为x,y,z,请与你的小组成员合作完成下列讨论:
(1)尝试列出含有x,y,z的方程来表达该关系:
讨论结果:
(2)分析x,y,z的取值是否存在界限范围,如果有,这个界限范围是多少?
(提示:x,y,z的最小取值是1,因为每种商品购买数量不得少于1,若三种商品中某两种商品购买数量均为1,此时另一种商品购买数量可达到最大值)
讨论结果:
(3)求解该方程的方法是什么?(尝试描述解该方程的思路,注意只求方程的正整数解)
讨论结果:
探索新知
体验用计算机编程来解决这个问题
用计算机解决问题的一般过程:
需求分析——问题转化——设计算法——编写程序——调试运行
将解决特定的实际问题转化为解决具有一般性的数学问题,这是利用计算机解决实际问题的关键。
实践体验
根据教师的演示,与同学互助合作,尝试打开“解三元一次方程.py”程序代码文件,并作适当修改,让程序能够正确运行,观察程序执行结果,得出计算答案。
可参考以下流程进行修改并运行:
打开解三元一次方程.py
找到第6行代码,在“==”前面输入方程计算式6x+5y+4z,注意计算机代码中,乘号要写作
号,小心不要删除if后面的空格。
点击窗口上方菜单栏运行-启动调试,在弹出的窗口中选择Python
File
Debug
the
currently
active
Python
File这一项。
观察窗口下方的调试输出区结果,若输出区出现Syntax
Error字样,表示代码有误。
我观察到的运算结果:
一共有(
)种搭配方案,可让50元资金刚好用完。
课后练习,巩固新知
下列哪一个环节不属于计算机解决问题的一般过程?(
)
设计算法
B、分析问题
C、调试运行
D、手工计算
(判断题)用计算机解决问题只能够通过使用现有的软件和程序去完成。(
)
3、(判断题)计算机程序是使用专门的计算机程序语言进行编写的(
)