2.4 常见算法的程序实现——基于解析算法的问题解决 课件(64张ppt)+教案+学习任务单+练习题

文档属性

名称 2.4 常见算法的程序实现——基于解析算法的问题解决 课件(64张ppt)+教案+学习任务单+练习题
格式 zip
文件大小 7.0MB
资源类型 教案
版本资源 中图版(2019)
科目 信息技术(信息科技)
更新时间 2020-12-11 22:48:32

文档简介

(共64张PPT)
解析算法(第十七课时)
算法与问题解决
广义上讲,算法是解决一个特定问题而采取的确定的、有限的步骤。
在计算机领域,算法作为一个精心设计的运算序列,描述了计算机如何将输入转化为输出的过程
体验探索:绿灯时长的最优设置
通常,行人的步行速度约为4.4
km/h,观察到信号灯变化后的反应时间约为2
s。如果要保证行人能走过一定距离的人行横道(例如:20
m),绿灯的时间至少需要设置多久?
分析问题
已知条件
求解目标
确立数学关系,建立数学模型。
设计算法
确立数学关系,建立数学模型。
建立数学模型
数学模型是用数学符号、数学式子、程序、图形等对实际问题本质属性的抽象而又简洁的刻画。
建立数学模型,就是根据实际问题来简化假设、分析内在规律,之后抽象成为数学的符号和语言。
解析算法
通过分析问题的已知条件和求解目标,抽象成数学模型,借助解析式,用已知条件为变量赋值进行求解。
例如:绿灯时长的最优设置
已知
求解
解析式
想一想
解析算法指通过找出解决问题的前提条件与结果之间的关系表达式,并计算表达式来实现问题的求解。
我们的日常生活中,还有哪些可以利用解析算法解决的问题?
生活中的问题解析
“网上购物”,这种省时又省力的购物方式已经被越来越多的人接受并使用。在网上购物时,选择了商品和数量,页面上立即显示出总价。
请思考:购物程序中的总价是如何计算出来的?
已知
单价、数量
数学关系
总价=单价
数量
求解
总价
基于解析算法的问题解决
编程
调试
解析式
已知
条件
求解
目标
二者
关系
计算
基于解析算法的问题解决
某地区为了开发山区农业,需要了解山地的气候变化。现已知该地山区海拔每升高100m,气温下降约0.5℃,山地最高海拔为1500m,山脚下的年平均气温为22℃(假设山脚海拔为0m)。
实践探索:山地气温分布问题
1.根据气温随海拔升高而变化的规律,写出计算该山地不同海拔高度的气温的解析式,并编程实现。
2.某种植物适宜生长在气温为18℃-20℃的山区,如果要分析这种植物应被种植在该山地多高的地区为宜,需要如何修改算法,请编程实现。
分析问题
已知
求解
海拔每升高100m,温度下降0.5℃
最高海拔1500m,山脚平均气温22℃
海拔与温度的关系式
数学关系
设计算法
输入海拔h
开始
结束
输出温度t
t=22-h/100
0.5
编程实现
分析问题
已知
求解
某种植物适宜生长在18-20℃
植物适宜生长的海拔区间
数学关系
设计算法
开始
结束
输出h1,h2
h1=(22-t1)
2
100
t1=18,t2=20
h2=(22-t2)
2
100
编程实现
基于解析算法的问题解决
目前,国内很多高速公路都启用了区间测速。区间测速是在同一路段布设两个监测点,基于车辆通过前后两个监测点的时间来计算车辆在该路段的平均行驶速度,并依据限速标识判定车辆是否超速。
实践探索:区间测速
现有一段长度为66
km的测速区间,汽车的限速是100
km/h。数据中心需要编写一段程序来判断汽车是否超速通过。
要判断小车是否在区间内超速,需要求得小车的平均时速,并与限速对比,如果大于限速则超速,否则就是正常通过。
求平均时速需要提供区间距离和通过时间。
区间距离已经明确,小车的通过时间可以由前后两个监测点的时间差判定,为简化问题,我们可以将通过时间设为输入数据。
分析问题
分析问题
已知
求解
数学模型
设计算法
输入t
s=66
v=s/t
60
开始
结束
输出'超速通过'
v>100
输出'正常通过'


(t以分钟为单位。)
编程实现
基于解析算法的问题解决
实践探索:抢红包
微信红包是大家都熟悉的一种游戏娱乐方式。
请思考:红包的数额是如何生成的?
为什么你打开的红包金额和别人的不一样?
分析问题
假设现在生成2个红包,总金额为x,单个红包的金额为整数,最小金额为1,求两个红包的金额。
已知
求解
总金额
x
红包数量
2
红包a的金额
红包b的金额
分析问题
已知
求解
总金额
x
红包数量
2
红包a的金额
红包b的金额
a=[1,x-1]之间的任意整数
b=x-a
数学关系
设计算法
输入红包总额x
b=x-a
开始
结束
输出a,b
a=randint(1,x-1)
编程实现
请思考:如果是3个或多个红包数量,应该如何修改程序解决问题?
实践探索:抢红包
如果红包数改成3个:
a=[1,总金额-2]
之间的随机数;
b=[1,(总金额-第1个红包)-1]之间的随机数;
c=总金额-第1个红包-第2个红包。
如果是n个红包,应该如何设计算法呢?
实践探索:抢红包
比如100元,由10个人分,那么第一份:x1=[1,100-9]之间的随机整数。第二份:x2=[1,(100-x1)-8]之间的随机整数。第三份:x3=[1,(100-x1-x2)-7]之间的随机整数。
……第n份:xn=100-x1-x2-...-x(n-1)。
实践探索:抢红包
x(n-1)=[1,(总额-x1-x2-…x(n-2))+1]之间的随机整数。
……
xn=总额-x1-x2-...-x(n-1)。
数学关系
输入总额x,数量n
x=x-a
开始
结束
输出x
a=randint(1,x-n+1)
n>1
输出a
n=n-1


想一想
抢红包小程序的算法只是一种可行的方法。实际上,生活中所用的小程序的算法要更加复杂和严谨。
请你思考:如何改进算法,让程序更加严谨和规范呢?
基于解析算法的问题解决思路
Input输入:明确问题的前提条件;
Output输出:明确要求的解;
Process处理:寻找前提条件与结果之间的数学表达式,代入数值,完成计算。
小结
分析问题
基于解析算法设计程序
编程调试
解析算法与问题解决
基于解析算法的问题解决
解析算法
分析已知条件和求解目标
抽象得出数学模型
代入数值求解
课后练习
收集学校周边的马路通行状况(马路宽度、高峰时段、人流量、车流量等信息),设计一种在智能交通环境下,控制十字路口红绿灯时长变化的合理方案。
结合第八、十课时所学的交通信号灯和倒计时器小程序,优化交通信号灯程序。
赋值语句
练习1:判断以下赋值语句写法是否正确,为什么?
(1)D=6+9
(2)F+3=E+6
(3)Z=X
Y
(4)C$=goodnight
练习2:下列程序的输出结果是多少?
A=30
A=A+10
A=50
print(A)

50



目前,世界上包括我国在内的绝大多数国家都使用摄氏温度,而美、英等国家使用华氏温度。
对于去美国旅行的中国游客来说,需要将当地发布的华氏温度转换为摄氏温度,以符合自己的理解习惯;同样,来中国旅行的美国游客亦如此。
请你想一想,能否利用计算机辅助旅行者进行温度转换?
实践探索:温度转换
分析问题
如果用c表示摄氏温度,f表示华氏温度,那么把华氏温度转换为摄氏温度的公式为:
根据这个公式,应该如何设计算法呢?
设计算法
①输入华氏温度f=90
②利用公式计算摄氏温度
③输出摄氏温度c
输入华氏温度f
c=(f-32)/1.8
开始
结束
输出摄氏温度c
顺序结构
编程调试
f=90
c=(f-32)/1.8
开始
结束
输出c
如果是输入任意华氏温度并计算摄氏温度,应该如何修改呢?
Python语言主要用函数input()实现数据输入。
函数input()主要用来接收键盘的键入,返回值为字符串型数据。
通常,在输入时可以给出提示信息,例如:
输入函数input()
f=input("请输入华氏温度:")
编程调试
输入f
c=(f-32)/1.8
开始
结束
输出c
程序是否正常运行并得到结果?
在程序设计中,可以通过强制类型转换操作,把某个数据从一种数据类型转换成另一种数据类型。
数据类型转换
数据类型转换函数
功能说明
float(x)
将x转换为一个浮点型数据
int(x)
将x转换为一个整型数据
str(x)
将x转换为字符串型数据
编程调试
输入f
c=(f-32)/1.8
开始
结束
输出c
如何让程序具有更友好的交互性?
f=int(f)
Python语言主要用函数print()实现数据输出。
函数print()主要用于在屏幕上输出一个或多个输出项的值,多个输出项中间用逗号隔开,例如:
输出函数print()
print(c)
print(f,'转换为摄氏温度是:',c)
编程调试-参考答案
函数print()会自动在行末加上回车。
如果不需回车,只需在函数print
()的结尾添加一个逗号
,
并设置分隔符参数
end,就可以改变它的行为。
输出函数print()
print(f,end='\n
')
以换行符结尾,换行
print(f)
换行
print('华氏温度:',end='
')
以空格结尾,不换行
编程调试
程序通常包括:
输入数据、处理数据和输出结果三部分。
Input:程序输入,是程序的开始。
Process:程序对输入进行处理,产生输出结果。
Output:程序输出,展示运算结果。
程序设计的IPO模式
根据键盘输入的身高和体重值,编写程序计算体重指数BMI。(BMI=w/h/h,w为体重kg,h为身高m。)
练一练
提出问题
分析问题
设计方案
编程调试
解决问题
练一练-参考答案
输入w,h
BMI=w/h/h
输出BMI
开始
结束
小结
顺序结构与语句
顺序结构
程序语句
按照自上至下的排列顺序逐条执行。
导入模块语句:import
赋值语句
输入输出语句
1.一个三位数,百位上的数比十位上的数大1,个位上的数是百位上的数的2倍,若十位上的数为3,编程求这个三位数是多少?
2.编写程序实现以下功能:
用户输入任意一个三位数,运行程序将其逆序输出。例如:用户输入“123”,程序输出“321”。
课后练习课程基本信息
课例编号
学科
信息技术
年级
高一
学期
第一学期
课题
解析算法
教科书
书名:
《信息技术》必修1
出版社:人民教育出版社;中国地图出版社
出版日期:2019

6

学生信息
姓名
学校
班级
学号
学习目标
1.
理解解析算法的概念。
2.
掌握解析算法的多个环节。
3.
运用解析算法分析问题,设计算法,编程实现,增强利用计算机解决问题的能力。
课前学习任务
交通信号灯的绿灯持续的时长应该如何设置?
课上学习任务
【学习任务一】
举例说明生活中可以运用解析算法解决的问题
【学习任务二】
某地区为了开发山区农业,需要了解山地的气候变化。现已知该地山区海拔每升高100m,气温下降约0.5℃,山地最高海拔为1500m,山脚下的年平均气温为22℃(假设山脚海拔为0m)。
1.根据气温随海拔升高而变化的规律,写出计算该山地不同海拔高度的气温的解析式,并编程实现。
2.某种植物适宜生长在气温为18℃-20℃的山区,如果要分析这种植物应被种植在该山地多高的地区为宜,需要如何修改算法,请编程实现。
请按照解决问题的一般方法尝试编程解决这一问题。
【学习任务三】
目前,国内很多高速公路都启用了区间测速。区间测速是在同一路段布设两个监测点,基于车辆通过前后两个监测点的时间来计算车辆在该路段的平均行驶速度,并依据限速标识判定车辆是否超速。
现有一段长度为66
km的测速区间,汽车的限速是100
km/h。数据中心需要编写一段程序来判断汽车是否超速通过。
【学习任务四】
微信红包是大家都熟悉的一种游戏娱乐方式。
请思考:红包的数额是如何生成的?为什么你打开的红包金额和别人的不一样?
任务4-1:
假设现在生成2个红包,总金额为x,单个红包的金额为整数,最小金额为1,求两个红包的金额。
任务4-2:
如果是3个或多个红包数量,应该如何修改程序解决问题?
推荐的学习资源
解析算法百科:https://baike.baidu.com/item/%E8%A7%A3%E6%9E%90%E7%AE%97%E6%B3%95/10389042?fr=aladdin课程基本信息
课例编号
学科
信息技术
年级
高一
学期
1
课题
解析算法
教科书
书名:
《信息技术》必修1
出版社:人民教育出版社;中国地图出版社
出版日期:2019

6

教学目标
教学目标:
1.
理解解析算法的概念。
2.
掌握解析算法的多个环节。
3.
运用解析算法分析问题,设计算法,编程实现,增强利用计算机解决问题的能力。
教学重点:基于解析算法的问题解决。
教学难点:基于解析算法的问题解决。
教学过程
时间
教学环节
主要师生活动
3分钟
情境引入
以绿灯时长的最优时长导入,引出解析算法
通常,行人的步行速度约为4.4
km/h,观察到信号灯变化后的反应时间约为2
s。如果要保证行人能走过一定距离的人行横道(例如:20
m),绿灯的时间至少需要设置多久?
通过分析问题的已知条件和求解目标,抽象成数学模型,借助解析式,用已知条件为变量赋值进行求解。这就是解析算法。
解析算法指通过找出解决问题的前提条件与结果之间的关系表达式,并计算表达式来实现问题的求解。
生活中的问题解析
引导学生思考:我们的日常生活中,还有哪些可以利用解析算法解决的问题?
“网上购物”,这种省时又省力的购物方式已经被越来越多的人接受并使用。在网上购物时,选择了商品和数量,页面上立即显示出总价。已知商品的单价和数量,建立数学模型,即总价等于单价乘以数量,计算得出结果。
6分钟
实践探究一
基于解析算法的问题解决
基于解析算法的问题解决,需要明确已知条件和求见目标之间的关系,形成一个解析式。在这之后,我们可以通过编写程序的方式完成计算和处理。
实践探索:山地气温分布问题
某地区为了开发山区农业,需要了解山地的气候变化。现已知该地山区海拔每升高100m,气温下降约0.5℃,山地最高海拔为1500m,山脚下的年平均气温为22℃(假设山脚海拔为0m)。
1.根据气温随海拔升高而变化的规律,写出计算该山地不同海拔高度的气温的解析式,并编程实现。
2.某种植物适宜生长在气温为18℃-20℃的山区,如果要分析这种植物应被种植在该山地多高的地区为宜,需要如何修改算法,请编程实现。
分析问题一:
已知:海拔每升高100m,温度下降0.5℃,最高海拔1500m,山脚平均气温22℃。
求解:海拔与温度的关系式
数学模型:t变化=h/100
0.5
t=22-t变化
分析问题二:
已知:某种植物适宜生长在18-20℃;t=22-h/100
0.5
求解:植物适宜生长的海拔区间
数学模型:h=(22-t)
100
2
5分钟
实践探究二
实践探索:区间测速问题
目前,国内很多高速公路都启用了区间测速。区间测速是在同一路段布设两个监测点,基于车辆通过前后两个监测点的时间来计算车辆在该路段的平均行驶速度,并依据限速标识判定车辆是否超速。
现有一段长度为66
km的测速区间,汽车的限速是100
km/h。数据中心需要编写一段程序来判断汽车是否超速通过。
已知:S=66
V限=100
t小车
求解:V小车
数学模型:V小车=S/t小车
基于解析算法的问题解决的步骤
分析问题:分析出已知条件、求解目标和已知与未知的关系
设计算法:抽象出数学模型,建立解析式。
编程调试:将数学解析式转换成程序表达式,进行编程实现并调试。
8分钟
实践探究三
实践探究:抢红包问题
微信红包是大家都熟悉的一种游戏娱乐方式。请思考:红包的数额是如何生成的?为什么你打开的红包金额和别人的不一样?
假设现在生成2个红包,总金额为x,单个红包的最小金额为1,求两个红包的金额。
已知:总金额x、红包数量为2
求解:两个红包的金额
数学模型:a=[1,x-1]之间的随机整数,b=x-a
编程实现
进一步思考红包问题
问题1:如果是3个或多个红包数量,应该如何修改程序解决问题?
a=[1,总金额-2]
之间的随机数;
b=[1,(总金额-第1个红包)-1]之间的随机数;
c=总金额-第1个红包-第2个红包。
问题2:如果是n个红包,应该如何设计算法呢?
x(n-1)=[1,(总额-x1-x2-…x(n-2)-1]之间的随机整数。
xn=总额-x1-x2-...-x(n-1)。
1分钟
总结提升
归纳基于解析算法的问题解决思路
Input输入:明确问题的前提条件;
Output输出:明确要求的解;
Process处理:寻找前提条件与结果之间的数学表达式,代入数值,完成计算。
1分钟
课堂小结
小结
解析算法
基于解析算法的问题解决
布置课后练习课程基本信息
课例编号
学科
信息技术
年级
高一
学期
第一学期
课题
解析算法
教科书
书名:
《信息技术》必修1
出版社:人民教育出版社;中国地图出版社
出版日期:2019

6

学生信息
姓名
学校
班级
学号
课后练习
收集学校周边的马路通行状况(马路宽度、高峰时段、人流量、车流量等信息),设计一种在智能交通环境下,控制十字路口红绿灯时长变化的合理方案。
结合第八、十课时所学的交通信号灯和倒计时器小程序,优化交通信号灯程序。