第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次

展开更多......

收起↑

资源列表