第14课 算法的验证 课件

| 15页
| 179人阅读
| 11人下载
普通

内容正文:

小朋友们吃饭,每人一只饭碗,2人一只菜碗,3人一只汤碗,一共用了11个碗,算一算,一共有几人吃饭? 请你算一算,一共有多少个小朋友人吃饭。 怎样判断答案是正确的? 6人 验算 6个人, 每人一只饭碗,那么有6个饭碗, 2人一只菜碗,那么有3个菜碗, 3人一只汤碗,那么有2个汤碗 6+3+2=11 数学里,经常会通过验算来验证计算结果是否正确,那我们设计的算法如何来验证呢? 执教者: 2023浙江教育出版社版 ∙ 小学信息科技 算法的有效性,可以根据算法特征来验证流程图描述的算法是否正确,也可以用具体数据来验证算法的输出结果是够正确,还可以编写程序在计算机上验证算法。 1 根据算法特征验证 2 用数据验证算法 1 用计算机程序验证 根据算法特征验证 一 有穷性 确定性 有输出 必须有确定的输出 每一步必须确定 且能有效执行 算法执行过程必须 步骤有限,时间有限 开始 输入L1 L2 L3 L4 S2=L2+L4 S1=L1+L3 Smin=S1 S2<Smin? Smin=S2 结束 否 是 根据算法的特征,观察流程图中算法描述的步骤是否有限? 根据算法的特征,观察流程图中算法描述的每一步是否确定可执行? 根据算法的特征,观察流程图中算法描述中输出是否符合要求? 根据算法特征验证 一 开始 输入L1 L2 L3 L4 S2=L2+L4 S1=L1+L3 Smin=S1 S2<Smin? Smin=S2 结束 否 是 输出Smin 开始 输入L1 L2 L3 L4 L5 L6 L7 S4=L6+L7 S3=L5 Smin2=S3 S4<Smin2? Smin2=S4 S2=L2+L4 S1=L1+L3 Smin1=S1 S2<Smin1? Smin1=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 S4<Smin2? Smin2=S4 S2=L2+L4 S1=L1+L3 Smin1=S1 S2<Smin1? Smin1=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 S4<Smin2? Smin2=S4 S2=L2+L4 S1=L1+L3 Smin1=S1 S2<Smin1? Smin1=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 S2<Smin1: Smin1=S2 input L1= input (“请输入路线L1的长度:” ) 输入 将输入的数据转换成整数类型 input() 返回的数据类型是字符串类型(str) int ( ) 提示语 用计算机程序验证算法 三 Smin2=S3 if S4<Smin2: Smin2=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 S2<Smin1: Smin1=S2 #求解第二段路线最短距离 S3=L5 S4=L6+L7 Smin2=S3 if S4<Smin2: Smin2=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页
1
第14课 算法的验证 课件-第2页
2
第14课 算法的验证 课件-第3页
3
第14课 算法的验证 课件-第4页
4
第14课 算法的验证 课件-第5页
5
第14课 算法的验证 课件-第6页
6

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。