第14课 算法的验证 课件(共15张PPT)+教案+练习 五上信息科技浙教版(2023)

资源下载
  1. 二一教育资源

第14课 算法的验证 课件(共15张PPT)+教案+练习 五上信息科技浙教版(2023)

资源简介

(共15张PPT)
小朋友们吃饭,每人一只饭碗,2人一只菜碗,3人一只汤碗,一共用了11个碗,算一算,一共有几人吃饭?
请你算一算,一共有多少个小朋友人吃饭。
怎样判断答案是正确的?
6人
验算
6个人,
每人一只饭碗,那么有6个饭碗,
2人一只菜碗,那么有3个菜碗,
3人一只汤碗,那么有2个汤碗
6+3+2=11
数学里,经常会通过验算来验证计算结果是否正确,那我们设计的算法如何来验证呢?
执教者:
算法的有效性,可以根据算法特征来验证流程图描述的算法是否正确,也可以用具体数据来验证算法的输出结果是够正确,还可以编写程序在计算机上验证算法。
1
根据算法特征验证
2
用数据验证算法
1
用计算机程序验证
根据算法特征验证
一
有穷性
确定性
有输出
必须有确定的输出
每一步必须确定
且能有效执行
算法执行过程必须
步骤有限,时间有限
开始
输入L1 L2 L3 L4
S2=L2+L4
S1=L1+L3
Smin=S1
S2Smin=S2
结束
否
是
根据算法的特征,观察流程图中算法描述的步骤是否有限?
根据算法的特征,观察流程图中算法描述的每一步是否确定可执行?
根据算法的特征,观察流程图中算法描述中输出是否符合要求?
根据算法特征验证
一
开始
输入L1 L2 L3 L4
S2=L2+L4
S1=L1+L3
Smin=S1
S2Smin=S2
结束
否
是
输出Smin
开始
输入L1 L2 L3 L4 L5 L6 L7
S4=L6+L7
S3=L5
Smin2=S3
S4Smin2=S4
S2=L2+L4
S1=L1+L3
Smin1=S1
S2Smin1=S2
Smin=Smin1+Smin2
输出Smin
结束
否
否
是
是
根据算法的特征,观察流程图中算法描述的步骤是否有限?
根据算法的特征,观察流程图中算法描述的每一步是否确定可执行?
根据算法的特征,观察流程图中算法描述中输出是否符合要求?
根据算法特征验证
一
用数据验证算法
二
使用不同的测试数据来测试算法,并记录算法的输出结果,是检查算法有效性的一种常用方法。
170
230
100
150
50
30
40
开始
输入L1 L2 L3 L4 L5 L6 L7
S4=L6+L7
S3=L5
Smin2=S3
S4Smin2=S4
S2=L2+L4
S1=L1+L3
Smin1=S1
S2Smin1=S2
Smin=Smin1+Smin2
输出Smin
结束
否
否
是
是
L1=170,L2=230,L3=100,L4=150
L5=50,L6=30,L7=40
S1=170+100=270
S2=230+150=380
Smin1=270
380<270,不成立
所以Smin1=270
S3=50
S4=30+40=70
Smin2=50
70<50,不成立
所以Smin2=50
Smin=270+50=320
输出320
170
230
100
150
50
30
40
开始
输入L1 L2 L3 L4 L5 L6 L7
S4=L6+L7
S3=L5
Smin2=S3
S4Smin2=S4
S2=L2+L4
S1=L1+L3
Smin1=S1
S2Smin1=S2
Smin=Smin1+Smin2
输出Smin
结束
否
否
是
是
L1=,L2=,L3=,L4=
L5=,L6=,L7=
S1=
S2=
Smin1=
所以Smin1=
S3=
S4=
Smin2=
所以Smin2=
Smin=
输出
任务一:用数据验证“最短距离”算法
选择表格中任一组的七小段路线的距离值,验证能否得到最短距离的输出结果。
在左边的框中逐步标注测试算法的过程。
L1 L2 L3 L4 L5 L6 L7 Smin
260 140 100 160 80 20 50
300 140 80 180 70 40 50
200 150 120 140 50 30 30
180 130 110 190 100 50 40
用计算机程序验证算法
三
算法可以先编写成计算机程序,再在计算机上进行验证。运行代码,输入数值,观察输出结果来验证算法。
Smin1=S1
if S2Smin1=S2
input
L1= input (“请输入路线L1的长度:” )
输入
将输入的数据转换成整数类型
input() 返回的数据类型是字符串类型(str)
int ( )
提示语
用计算机程序验证算法
三
Smin2=S3
if S4Smin2=S4
print ( “最短距离为:” , Smin )
输出
中间用“,”分隔
#第一组数据:260 140 100 160 80 20 50
#第二组数据:300 140 80 180 70 40 50
#第三组数据:200 150 120 140 50 30 30
#第四组数据:180 130 110 190 100 50 40
#输入每小段路线的距离
L1=int(input("请输入路线L1的长度:"))
L2=int(input("请输入路线L2的长度:"))
L3=int(input("请输入路线L3的长度:"))
L4=int(input("请输入路线L4的长度:"))
L5=int(input("请输入路线L5的长度:"))
L6=int(input("请输入路线L6的长度:"))
L7=int(input("请输入路线L7的长度:"))
#求解第一段路线的最短距离
#使用距离计算模型
S1=L1+L3 #计算第一条路线的距离S1
S2=L2+L4 #计算第二条路线的距离S2
Smin1=S1 #赋初值
if S2Smin1=S2
#求解第二段路线最短距离
S3=L5
S4=L6+L7
Smin2=S3
if S4Smin2=S4
Smin=Smin1+Smin2 #合并两段路线的最短距离
print("最短距离为:",Smin) #输出最短距离
复制左边的程序代码,打开Thonny,输入最上面几组数据,验证求最短距离的算法。
任务二:用计算机程序验证“最短距离”算法
根据画三角形的流程图验证算法
计算右转角度:a=360/n=120
开始
输入边数n=3,L=30
直行L
右转a
输出轨迹
结束
直行L
右转a
直行L
右转a
计算右转角度:a=360/n
开始
输入:边数n和边长L
直行L
右转a
输出轨迹
结束
重复
( n )次
1次
1次
1次
重
复
3
次
计算右转角度:a=360/n
开始
输入:边数n和边长L
直行L
右转a
输出轨迹
结束
重复
( n )次
import turtle
L=int(input("请输入要画的多边形边长:"))
n=
a=
for i in range(1, n+1):
turtle.forward(L) #直行L步
turtle.right(a) #右转a度
turtle.done() #输出轨迹
任务三:用计算机程序验证“画正多边形”的算法
复制下方的程序代码,打开Thonny,将程序补充完整,并输入边长和边数的值,验证“画正多边形”算法的正确性。
重复n次
算法的验证
根据算法特征验证
用数据验证
用计算机程序验证
有穷性
确定性
有输出
使用不同数据进行测试中小学教育资源及组卷应用平台
第14课 算法的验证
教材分析:
算法在实施之前要先验证其是否有效。根据算法描述,判断算法是否具备有穷性、确定性和有输出三个特征,如果不符合,算法将无法被执行。在确保算法具备算法特征后,还需要用具体数据对算法进行测试。测试分为人工测试和机器测试。两种测试方式各有有点,人工测试更便捷却不要求掌握程序设计语言,机器测试更快速且可以短时间内完成大量数据的测试,因此两者关系不是非此即彼,而是相辅相成。只有通过了验证的算法,才能够有效地被运行并解决问题。
本课旨在让学生回忆算法的特征,熟知流程图的描述方式,体会计算机有序执行的思维模式,理解用多组数据测试算法的必要性。
预设教学目标:
1.知道验证算法的三种方法;
2.通过不同数据测试算法的过程,掌握用数据验证算法;
3.通过编写程序,会用计算机程序验证算法;
4.通过对算法进行验证,知道算法的有效性,发展计算思维。
预设教学重难点:
重点:掌握验证算法有效性的方法。
难点:根据解决问题的需要设计算法。
预设教学课时:
1课时
预设教学准备:
学习单、极域电子教室、课件
预设教学过程:
一、课堂导入
1.今天上课先来看道数学题:小朋友们吃饭,每人一只饭碗,2人一只菜碗,3人一只汤碗,一共用了11个碗,算一算,一共有几人吃饭?
你能算出有多少人吃饭吗?学生进行计算。
怎样判断答案是正确的?
不过,可以通过验算来判断答案是否正确。
6个人,
每人一只饭碗,那么有6个饭碗,
2人一只菜碗,那么有3个菜碗,
3人一只汤碗,那么有2个汤碗
6+3+2=11
通过验算,我们发现答案是正确的。
数学里,经常会通过验算来验证计算结果是否正确,那我们设计的算法如何来验证呢?
2.引入课题
今天我们就一起来学习《算法的验证》。
二、新知建构
算法的有效性,可以根据算法特征来验证流程图描述的算法是否正确,也可以用具体数据来验证算法的输出结果是够正确,还可以编写程序在计算机上验证算法。
【根据算法特征验证】
1.我们先来看根据算法特征验证,那还记得算法的三大特征吗?
有穷性:算法执行过程必须步骤有限,时间有限
确定性:每一步必须确定且能有效执行
有输出:必须有确定的输出
2.活动一:有三个关于计算最短距离的流程图,但是可能有些问题,请你仔细阅读观察。
根据算法特征验证,在下列三个流程图中选择有效的算法,找出错误的原因。
学生活动。
学生小组合作讨论流程图。
反馈交流:第一个流程图没有输出,第二个流程图不能结束,第三个流程图符合算法的三个特征。
3.小结:算法可以根据算法的特征来验证,如验证流程图描述的算法可以通过算法执行过程的步骤是否有限、算法执行的每一步是否确定可执行、输出是否符合规则等验证算法的有效性。
【用数据验证算法】
1.符合算法特征的流程图就一定是正确的算法吗?
使用不同的测试数据来测试算法,并记录算法的输出结果,是检查算法有效性的一种常用方法。
2.活动二:用数据验证算法。根据图中给出的数据,结合流程图验证能否得出最短距离的输出结果。
我们先来看图中的数据,请你在心中算一算最短距离的值。
师生共同验证。
最后输出的320和你心中算出来的值是否一致?
3. 那请你也来用一组数据进行验证。
任务一:用数据验证“最短距离”算法
选择表格中任一组的七小段路线的距离值,验证能否得到最短距离的输出结果。
将过程填写在左边的框中。
学生自主选择任务单中的某一组数据,结合流程图验证输出的结果是否正确。
4.请学生详细说一说数据的测试方法。
请选择不同数据的学生分别反馈,并说一说用数据验证算法的优点。
5.小结:刚才大家使用了不同的测试数据来测试算法,逐步标注测试算法的过程,并记录了算法的输出结果,这是利用数据验证算法,是检查算法有效性的一个非常常用方法。
【用计算机程序验证算法】
1.每次我们人为地用数据进行验证,实在是太麻烦了!怎么能够快速得出结论呢?
学生回答。
是的,可以采用机器测试,这样更加快速且可以在短时间内完成大量数据的测试。
2. 算法可以先编写成计算机程序,再在计算机上进行验证。运行代码,输入数值,观察输出结果来验证算法。
我们一起根据流程图来看程序的编写。
3.出示流程图
首先要输入数据,输入在python中用的是input函数,然后将输入的值分别赋值给L1、L2、L3……L7。
L1= input (“请输入路线L1的长度:” )
input()是输入函数,“请输入路线L1的长度:”是提示语,这样我们就知道现在输入的是L1的距离值了。但是,input() 返回的数据类型是字符串类型(str),如果直接这样,那么就不能计算了,需要把输入的值转换成整数类型的值,那就要请int来帮忙了。
所以可以这样来进行赋值:L1=int(input("请输入路线L1的长度:"))
其他的赋值语句和流程图基本一致,这里的分支结构还记得用什么来编写?(if)
是的,所以我们这样来编写:
Smin1=S1
if S2Smin1=S2
别忘记冒号和缩进。
同样第二段路程的分支结构也是一样:
Smin2=S3
if S4Smin2=S4
最后的输出函数使用的是print()函数,这里面可以使用两部分,中间用,分开。
4. 任务二:用计算机程序验证“最短距离”算法
复制左边的程序代码,打开Thonny,输入最上面几组数据,验证求最短距离的算法。
学生操作,尝试并体会用计算机程序验证算法的过程。
5. 学生讨论、交流。
你认为用计算机程序来验证算法有哪些优点?
教师小结:利用计算机程序验证算法,更快捷、更准确。
三、拓展练习
1.上一节课我们还设计了画正多边形的算法,现在以画三角形为例,我们来验证一下是否正确。
根据画三角形的流程图验证算法,教师边讲解,课件边展示。
2. 任务三:用计算机程序验证“画正多边形”的算法
复制下方的程序代码,打开Thonny,将程序补充完整,并输入边长和边数的值,验证“画正多边形”算法的正确性。
学生操作,并反馈交流。
四、课堂小结
1.本课学习回顾:验证算法有效性的方法有哪些?
2.这节课你有什么收获?
执行步骤有限
根据算法特征验证 算法可执行
输出正确
算法的验证: 用数据验证——使用不同数据进行测试
用计算机程序验证
【课后反思】
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)(共4张PPT)
班级: 学号: 姓名:
开始
输入L1 L2 L3 L4 L5 L6 L7
S4=L6+L7
S3=L5
Smin2=S3
S4Smin2=S4
S2=L2+L4
S1=L1+L3
Smin1=S1
S2Smin1=S2
Smin=Smin1+Smin2
输出Smin
结束
否
否
是
是
L1=,L2=,L3=,L4=
L5=,L6=,L7=
S1=
S2=
Smin1=
所以Smin1=
S3=
S4=
Smin2=
所以Smin2=
Smin=
输出
任务一:用数据验证“最短距离”算法
选择表格中任一组的七小段路线的距离值,验证能否得到最短距离的输出结果。
在左边的框中逐步标注测试算法的过程。
L1 L2 L3 L4 L5 L6 L7 Smin
260 140 100 160 80 20 50
300 140 80 180 70 40 50
200 150 120 140 50 30 30
180 130 110 190 100 50 40
#第一组数据:260 140 100 160 80 20 50
#第二组数据:300 140 80 180 70 40 50
#第三组数据:200 150 120 140 50 30 30
#第四组数据:180 130 110 190 100 50 40
#输入每小段路线的距离
L1=int(input("请输入路线L1的长度:"))
L2=int(input("请输入路线L2的长度:"))
L3=int(input("请输入路线L3的长度:"))
L4=int(input("请输入路线L4的长度:"))
L5=int(input("请输入路线L5的长度:"))
L6=int(input("请输入路线L6的长度:"))
L7=int(input("请输入路线L7的长度:"))
#求解第一段路线的最短距离
#使用距离计算模型
S1=L1+L3 #计算第一条路线的距离S1
S2=L2+L4 #计算第二条路线的距离S2
Smin1=S1 #赋初值
if S2Smin1=S2
#求解第二段路线最短距离
S3=L5
S4=L6+L7
Smin2=S3
if S4Smin2=S4
Smin=Smin1+Smin2 #合并两段路线的最短距离
print("最短距离为:",Smin) #输出最短距离
复制左边的程序代码,打开Thonny,输入最上面几组数据,验证求最短距离的算法。
任务二:用计算机程序验证“最短距离”算法
计算右转角度:a=360/n
开始
输入:边数n和边长L
直行L
右转a
输出轨迹
结束
重复
( n )次
import turtle
L=int(input("请输入要画的多边形边长:"))
n=
a=
for i in range(1, n+1):
turtle.forward(L) #直行L步
turtle.right(a) #右转a度
turtle.done() #输出轨迹
任务三:用计算机程序验证“画正多边形”的算法
复制下方的程序代码,打开Thonny,将程序补充完整,并输入边长和边数的值,验证“画正多边形”算法的正确性。
重复n次

展开更多......

收起↑

资源列表