内容正文:
第7节 算法的实践
第二单元 算法及其实现
01
明确问题,抽象建模
02
表达流程,描述算法
contents
目录
行业PPT模板http:///hangye/
03
设计程序,实现算法
导入新课
3
3
算法实践过程大致可分为“明确问题,抽象建模”“表达流程,描述算法”与“编写程序,实现算法”这三个环节。就以“简易计算器”项目的实现为例,其完整的算法实践过程如下。
讲授新课
03
一、明确问题,抽象建模
这个环节又可以根据实际需求,拆分为“明确问题”“问题分解”“抽象”与“建模”等步骤。
03
明确问题就是进一步确定问题求解的具体目标,也就是所谓的问题需求分析。以“简易计算器”为例,就是列出它的具体功能,可以用简洁的语言进行描述,如“实现两个正整数的加、减、乘、整除与求余运算的功能”
讲授新课
03
问题分解就是将复杂、具体的功能需求,分割成多个简单、容易实现的小问题。上述的功能需求,就要分割为“2个正整数相加”“2个正整数相减”“2个正整数相乘”“2个正整数整除”“2个正整数求余”这五个小问题。
讲授新课
03
抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。上述五个小问题的共同本质特征是:都对两个正整数进行运算,并进行求解。
讲授新课
03
建模就是在抽象基础之上,建立解决问题的模型。通常是运用数学符号与公式等工具,将复杂的事物关系简化。如果用a、b表示两个正整数,op表示运算符,c表示结果,那么上述五个小问题就可以简化为如右图 。
讲授新课
讲授新课
二、表达流程,描述算法
这个环节包括画流程图和程序流程指引注释。模型可以清晰地表明输入、输出与约束条件之间的关系。即a与b是输入,它们的约束条件是正整数;op的约束条件是在“+、-、*、//、%”中取值,c是输出。据此我们可以用流程图的方式,描述它的算法。还可以根据流程图编写算法流程的部分程序注释,来为设计程序做导引。
03
三、编写程序,实现算法
程序是算法的体现,是对算法的实现和验证。程序设计需要依赖具体的编程语言,编写代码并进行调试,同时不断优化和迭代。
讲授新课
03
1.编写程序:设计程序的过程,也是对流程图“转译”的过程。设计程序的成果是源程序。
程序
源码版权归属、程序主要功能等
代码功能说明
变量说明
程序代码
注释
算法流程注释
讲授新课
讲授新课
名称:简易计算器
版本:1.0
功能:进行两个正整数的加、减、乘、整除和求余的运算开发者:小清、同学甲、同学乙、同学丙开发
# 输人
a = int(input('请输人正整数a:')) #第一个数op= input('输人运算符(+-*//&):')#操作符
b= int(input('请输人正整数b:'))#第二个数b
#分支结构
#加
if op == '+':
c=a+b
# 滅
if op =='-':
c=a-b
#乘
if op ='*':
c=a*b
# 整除
if op =='//':
c=a//b
#求余
if op == '%':
c=a%b
# 输出
print(c)
03
2.运行调试
程序设计完成后,要进行运行调试。首先,根据信息提示排除各种错误使程序能正常运行。然后,进行功能测试,使程序达到预期的目标。最后,把程序交付用户试用,接受用户反馈意见,适时进行改进或优化。
讲授新课
讲授新课
讲授新课
3.迭代升级
程序在调试和使用过程中会发现一些缺陷需要改进,也有一些地方的用户体验需要优化,还有一些功能需要更新,从而不断地进行迭代与升级。
讲授新课
拓展与提升
升级“简易计算器
“简易计算器”分享给同学们试用之后,收到了很多问题和建议。经过整理与认真分析,决定对表中的三个问题和建议进行改进。
问题和建议 改进方法
当被除数为零时,整除与求余会报错。该问题需要修正
误输人运算符“”等符号,程序报错。该问题需要修正
程序输出结果过于简单,建议输出完整的算式,如“1*8-8”
讲授新课
拓展与提升
实践内容主要包括:
(1)通过小组讨论,确定表中三个问题的改进方法。
(2)根据确定的改进方法,分工修改程序。
(3)对分工完成的程序进行整合并运行调试,
(4)汇报与交流实践成果,分享升级后的程序,
本节课的内容,对你小组的项目问题解决有帮助吗?小清团队通过学习“算法实践过程”的相关内容,知道了算法实践的整体过程,并迁移运用到小组的项目中。你还有哪些更好的设想?请填写在下面的横线上。
项目实施
谢 谢 观 看
$$