(共30张PPT)
第二章
算法与程序实现
2.4.1基于解析算法的问题解决
目
录CONTENTS
01
温故知新
02
解决问题
03
项目实战
04
阅读拓展
温
故
知
01
新
温故知新
if
条件表达式:
语句块
if
条件表达式:
语句块1
else:
语句块2
if
条件表达式1:
语句块1
elif
条件表达式2:
语句块2
elif
条件表达式3:
语句块3
……
else:
语句块n
1、条件分支选择语句
2、循环语句1
while语句
温故知新
满足条件?
否
循环体
是
退出循环
While
条件
语句后面加冒号
2、循环语句2
for
语句
温故知新
for
变量
in
序列:
语句块(循环体)
for与range()
是天生的一对。
例:循环输出0到100的自然数。
for
i
in
range(0,101):
print
(i)
题1、左侧程序运行时,从键盘上输入-3,则输出的值为(
)
A
-3
B
3
C
1
D
-1
温故知新
X=float(input(“请输入x的值”))
If
x>0:
Y=1
Else
if
x=0
y=0
Else
Y=-1
Print
(y)
题2、执行如图所示的程序框图,若输出的k=5,,则输入的整数p的最大值为
A
7
B
15
C
31
D
63
温故知新
题3、图中的循环体语句用python语句如何描述?
题4、下面给出的一个用循环语句编写的程序
K=1
Sum=0
While
k<10:
sum=sum+k
2
k=k+1
Print
(
sum
)
温故知新
完成任务:
指出程序所用的是何种循环语句,并指出该程序的算法功能。
请用另一种循环语句的形式把该程序写出来。
(看看老师给出的答案对不对)。
for
i
in
range(1,10):
解
决
问
02
题
问题引入
编写程序,
输入一元二次方程ax2+bx+c=0(a!=0)的系数,输出求解结果。
应用简单的数学知识来分析问题,寻找问题各要素之间的关系,用计算机编程来快速解决。
数学问题
建构模型
解析算法:
在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来,解决了这些表达式,问题也就得以解决。
要先读题,找出已知条件、求解问题,观察分析找出各要素之间的关系,建立解析关系表达式。?????
解析就是深入分析、剖析的意思。?
???
核心概念
解析算法
深入讲解
用解析法编程来解决问题
1.分析问题、建立数学模型。
已知
问题
求解问题
解析关系表达式
关键
2.设计算法,确定范围
4.调试程序
3.编写程序
分析交流
设判别式△=b2-4ac
(1)当△>0时,一元二次方程有两个不等的实数根。
(2)当△=0时,一元二次方程有两个相等的实数根。
(3)当△<0时,一元二次方程没有实数根。
一元二次方程的根有三种不同情况:
是
△=b2-4ac
△>0?
否
多分支循环
解决问题
将右侧程序补充完整
ax2+bx+c=0
(a!=0)
=-c/b
b
2-4
a
c
=(-b+math.sqrt(d))/(2
a)
=(-b-math.sqrt(d))/(2
a)
解决问题
Python
的标准库是在安装软件时默认自带的。
标准库提供的组件数量非常庞大,涉及范围十分广泛。标准库包括核心语言的数据类型、内置函数和功能模块。在使用标准库前,需使用import
语句进行导入。
math
库、time
库、turtle
库和pickle
库都是标准库。
标准库是Python不可分割的一部分。
上述程序用到math
库,如不使用库,以数学学科的算法规则,本程序中的语句将如何改写?
x1=(-b+math.sqrt(d))/(2
a)
#方程的根
x2=(-b-math.sqrt(d))/(2
a)
#方程的根
改写后并能在python语言中运行。
探究:
项
目
实
03
战
割圆术
割之弥细
所失弥少
割之又割
以至于不可割
则与圆合体而无所失矣
?
?
?
?
?
?
?
?
?
?--------《海岛算经》刘徽
中国的圆周率比西方早了近一千年
可谓是古人伟大的发现之一
当古时智慧与现代技术相结合
又会碰撞出怎样的火花呢
接下来让我们一起
用现代的Python
循着古时割圆术的思路
求出圆周率这一奇妙的数字
割圆术
1、刘徽发明“割圆术”是为求“圆周率”。那么圆周率究竟是指什么呢?
2、看左侧,你发现了什么?总结割圆术的规律。
探究:
割圆术
圆周率就是指“圆周长与该圆直径的比率”。很幸运,这是个不变的“常数”!
一个圆我们怎样才能求出π?要知道,在中国古代,很长一段时间大家都求不出π的较精确值。如果没有它,我们对圆和球体等将束手无策。
“割圆术”,则是以“圆内接正多边形的面积”,来无限逼近“圆面积”。即通过圆内接正多边形细割圆,并使正多边形的周长无限接近圆的周长,进而来求得较为精确的圆周率。
割圆术
圆周率就是指“圆周长与该圆直径的比率”。很幸运,这是个不变的“常数”!
一个圆我们怎样才能求出π?要知道,在中国古代,很长一段时间大家都求不出π的较精确值。如果没有它,我们对圆和球体等将束手无策。
“割圆术”,则是以“圆内接正多边形的面积”,来无限逼近“圆面积”。即通过圆内接正多边形细割圆,并使正多边形的周长无限接近圆的周长,进而来求得较为精确的圆周率。
割圆术
割圆术
建构模型
已知
问题
求解问题
解析
表达式
思维导图
正多边形的边数n,边长(图中AB),半径
计算圆周率π
从六边形开始计算,运用n边形与2n边形之间的关系求解。
割圆术
import
math
n
=
int(input("请输入正多边形的边数:"))
i
=
6
x
=
1
s
=
6
math.sqrt(3)
/
4
while
i
<=
n
/
2:
h
=
math.sqrt
(1
-
(x
/
2)
2)
s
=
s
+
i
x
(1
-
h)
/
2
x
=
math.sqrt((x
/
2)
2
+
(1
-
h)
2)
i
=
2
i
print("当正多边形的边数为",
n,
"时,π的近似值为:",
s)
程序代码
割圆术
随着n的增大,s2n的值越接近于π。
阅
读
拓
04
展
数学建模
数学建模竞赛
为了适应科学技术发展的需要和培养高质量、高层次科技人才,数学建模已经在基础教育中逐步开展,国内外越来越多的学校正在进行数学建模课程的教学和参加开放性的数学建模竞赛,将数学建模教学和竞赛作为教学改革和培养高层次的科技人才的一个重要方面。
请到网上搜索数学建模竞赛,了解相关内容,
数学建模
数学建模,当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言作表述来建立数学模型。?
数学建模
分析实例
建立模型
小球从10米高处自由下落,每次弹起的高度是下落高度的70%。当小球弹起的高度不足原高度的千分之一时,小球很快就会停止跳动,计算小球在整个弹跳过程中所经历的总路程(忽略弹起高度不足原高度千分之一的部分)。
谢
谢
聆
听教学设计
课例名称
2.4.1
基于解析算法的问题解决
学段学科
高中
信息技术
教材版本
人教中图版2019第1版
章节
第二章
第四节
年级
高一
核心素养
目标
学会分析问题,合理设计算法,建立求解问题的解析式(计算思维)。
理解解析法的思想,抽取数学模型(计算思维)。
3、关注解析法解决问题的意义(信息意识)。
4、综合运用各学科知识,培养勇于实践,勤于思考和善于总结的科学探索精神与严谨的态度(信息社会责任)。
教学重难点
1、教学重点:
掌握解析算法的设计,编写程序,解决实际问题。
2、教学难点:
用解析算法分析问题,抽取数学模型。
教材分析
解析算法与其他算法比较,相对较容易理解,困难的是解析式的导出,这需要在计算机学科与其他学科之间进行整合。本节综合运用数学、物理等学科的知识和思考方法,寻找问题中各要素之间的关系,导出解决问题的解析式或列出相关的方程,然后设计程序求解。
教学策略
教师引导学生通过讨论分析思考和探索等方式,结合案例学习。教学中采用问题驱动及交流展示等教学活动,帮助学生理解解析法的基本思路,让学生领会其文化价值,应用经典项目向深远处引领,激发学生产生更浓厚的学习需求。
2.4.1基于解析算法的问题解决
教学
环节
教师活动
学生活动
设计意图
温故知新
复习
条件语句
循环语句
学生完成相关问题:
执行如图所示的程序框图,若输出
的结果k=5,则输入的整数p的最大值为
A
7
B
15
C
31
D
63
复习引入,
提高本节课的学习效率。
解决问题
1、提出问题:
输入一元二次方程ax2+bx+c=0(a!=0)的系数,输出求解结果。
2、引导学生总结出核心概念
解析法:
在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析表达式表示出来。
1、分析交流如何用编程来完成问题。
2、解读问题,找出已知条件、求解问题,观察分析找出各要素之间的关系,建立解析关系表达式。
3.设计算法
4.调试程序
对一种算法直接讲授,会感枯燥,将其溶入相关的数学知识中,引导学生通过分析、讨论、领会算法如何从已知条件入手,寻找各要素之间的关系,导出解析式或相关方程,让学生在解决问题中掌握解析算法思想。
解决问题
组织学生分组探究,解决问题,帮助学生克服难点,体验成功的乐趣。
5、补充下列程序:
6、探究:
上述程序用到math
库,如不使用库,以数学学科的算法规则,本程序中的语句将如何改写?
设置障碍,理解如何通过程序实现算法,逐渐达到自身对知识的意义建构,感受解析算法的魅力,提高计算思维。
项目实战
提出问题:
在古代,很长一段时间大家都求不出π的较精确值。如果没有它,我们对圆和球体等将束手无策。
组织学生用现代的编程Python语言,循着古时割圆术的思路,求出圆周率这一奇妙的数字。
探究:
1、刘徽发明“割圆术”是为求“圆周率”。那么圆周率究竟是指什么呢?
2、总结割圆术的规律。
3、寻求已知问题,建立数学模型,完成程序的调试。
程序代码:
import
math
n
=
int(input("请输入正多边形的边数:"))
i
=
6
x
=
1
s
=
6
math.sqrt(3)
/
4
while
i
<=
n
/
2:
h
=
math.sqrt
(1
-
(x
/
2)
2)
s
=
s
+
i
x
(1
-
h)
/
2
x
=
math.sqrt((x
/
2)
2
+
(1
-
h)
2)
i
=
2
i
print("当正多边形的边数为",
n,
"时,π的近似值为:",
s)
营造良好的学习氛围,给学生充分的自主学习时间和空间。让学生通过操作演练进行数字化学习与创新,帮助学生形成系统的知识体系,同时感受经典数学问题的文化价值。
阅读拓展
引领学生进行整合与创新,突出解析法的精髓数学建模。
1、请到网上搜索“数学建模竞赛”,了解相关内容。
2、问题分析:小球的运动由多次的下落和弹起构成的,但弹起的次数并不容易知道
,把小球每次下落和弹起的路程列出,寻找一些规律。
提高自主获取信息的能力。进行知识拓展和深究,提出更高的期望。2.4.1基于解析算法的问题解决
练
习
题
一、自由落体运动问题
从离地500m的高处自由落下一个小球,求从开始落下的时刻起,小球在最后1s内的位移(重力加速度以9.8m/s2计)
(一)根据问题,建构相应数学模型
已知条件:
求解目标:
已知与未知的关系:
(二)填充完整下列程序
import
math
h
=
500
g
=
9.8
t
=
请填充
hx
=
g
(t
-
1)
(t
-
1)
/
2
hh
=
h
-
hx
print("小球最后1秒下落的位移是:",
hh,
"米")2、
二、数学界的大神基斯顿·卡曼,发明的运算符号“阶乘”,记作“n!”。一个正整数的阶乘是所有小于及等于该数的正整数的积,如5!=5
4
3
2
1,请编写程序进行计算n!。要求写出算法和代码。
答案:
一、(一)根据问题,建构相应数学模型
已知条件:小球离地高度500m,重力加速度9.8m/s2;
求解目标:小球在下落最后1s内的位移。
3、已知与未知的关系:可用自由落体运动位移与时间关系的公式,求解出下落时间t,以及最后1s内小球的位移。
(二)填充完整下列程序
t
=
math.sqrt(2
h
/
g)
二、
分析:
计算n!,需要定义3个变量,已知变量n,由键盘输入,输入的是几,就计算几的阶乘,变量i与s,分别用来循环计数与保存阶乘的计算结果,已知与未知的关系。
算法:
第一步:输入数存入变量n.
第二步:定义变量s与i,并赋初值为1。
第三步:循环变量从1开始,判断有没有超过终值,如果超过,跳出循环,否则执行s=s
i,并且计数器增加1。
第四步:输出s,也就是计算n!的值。
代码:
def
jc(n):
i=1
s=1
for
i
in
range(1,n+1):
s=s
i
i+=1
return
s