- 2
- 0
- 约2.13千字
- 约 20页
- 2020-04-12 发布于辽宁
- 举报
第10章 问题求解与算法设计第10章 问题求解与算法设计本讲提纲问题求解过程01计算机求解问题的方法02算法及其描述03程序基本结构04Raptor可视化算法流程图设计05调试与测试建立模型设计与实现问题抽象问题描述第10章 问题求解与算法设计问题求解过程问题求解的一般过程: 明确问题→理解问题→方案设计→方案选择→解决步骤→方案评价问题求解的计算机处理过程:开始第10章 问题求解与算法设计x←0Nx=35问题求解的计算机处理过程Y2*x+4*(35-x)=94YN 鸡兔同笼——穷举法 输出答案X搜索参数: x←x+1设鸡有x只,则x的可能取值是0至35结束答案符合的条件: 2x+4(35-x)=94第10章 问题求解与算法设计计算机求解问题的方法 (1)使用计算机软件进行问题求解 使用已有软件解决问题,这是计算机应用的典型方式。 (2)编写计算机程序进行问题求解 抽象分析与建模,设计与实现,调试与测试 (3)构建系统进行问题求解 要特别注意组成系统的各部分之间的相互约束、依赖和控制关系。第10章 问题求解与算法设计算法及其描述一、算法的定义 算法(Algorithm)就是指为解决一个具体问题而采取的方法和步骤的集合。算法是程序设计的灵魂。 生活中的算法——算法无处不在:?超市收银?旅程安排(时间、里程、花费)?手机话费省钱方案?如何合理安排学习和生活时间才能让学习效率最高第10章 问题求解与算法设计算法及其描述二、算法的基本特征1.有零个或多个输入:需要从外界获取必要的信息2.有一个或多个输出:需要把求得得解进行输出3.确定性:每一步必须明确4.有穷性:算法要包含有限的步骤5.可行性:算法描述的所有操作都可以通过已经实现的基本运算的有限次执行来实现第10章 问题求解与算法设计伪代码表示法判断一个年份是否为闰年的算法:BEGIN(算法开始)输入年份 yIF y能被4整除 THEN IF y不能被100整除 THEN 输出“y是闰年” ELSE IF y能被400整除 THEN 输出“y是闰年” ELSE 输出“y不是闰年” END IF END IFELSE 输出“y不是闰年”END IFEND(算法结束)算法及其描述三、算法的表示自然语言表示法伪代码表示法流程图表示法N-S图PAD图第10章 问题求解与算法设计算法及其描述三、算法的表示流程图是一种采用程序框、流程线及简要文字说明来表示算法的有效方法。 其中,程序框图用于表示算法中的具体步骤,流程线表示算法的执行顺序。开始第10章 问题求解与算法设计100能整除y输入年份y算法及其描述4能整除yNY输出Y不是闰年N三、算法的表示100能整除yYN输出Y是闰年流程图表示法判断一个年份是否为闰年的算法:输出Y是闰年输出Y不是闰年结束Y第10章 问题求解与算法设计算法及其描述四、算法的评价 对于算法的评价有两个基本标准,即时间复杂度和空间复杂度。 时间复杂度:常数O(1)、对数阶O(log2n)、线形阶O(n)、线形对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、指数阶O(2n)。 空间复杂度:即执行这个算法需要占用多少资源(可以理解为占用了多少计算机存储单元)。 算法的可读性第10章 问题求解与算法设计程序基本结构艾达.拜伦( 1815-1852)第一位程序员程序设计技术的发展机器语言汇编语言低级语言高级语言第一个计算机程序面向对象面向计算机面向过程20世纪60年代1843年计算机刚发明的最初10年20世纪80年代第10章 问题求解与算法设计程序基本结构顺序结构aA顺序结构是控制结构中最简单的一种基本结构。它表示程序中的各操作是按照它们出现的先后顺序执行的。Bb顺序结构第10章 问题求解与算法设计程序基本结构选择结构aaPP是否是否AABbb单分支结构双分支结构第10章 问题求解与算法设计程序基本结构循环结构aaAP否是是PbbA否直到型循环当型循环第10章 问题求解与算法设计Raptor可视化算法流程图设计菜单和工具栏符号区域Raptor的主控台观察窗口主工作区Raptor的主界面第10章 问题求解与算法设计Raptor可视化算法流程图设计求解n!问题描述:n!=1×2×3×……×n 或n!=n(n-1)!?问题分析:第一种表示法是利用计算机求解连乘问题,一般可先设乘积结果为1,然后在逐项相乘。若用f表示n!,开始时可令f=1表示0!,然后依次乘1,2,3,……n,便可计算得到n!。第二种方法是一个典型的递归算法的表示。递归算法设计的关键包括两个部分:一是确定边界(终止)条件,二是确定递归公式。对于阶乘问题,不难得到其边界条件和递归公式为:开始第10章 问题求解与算法设计输入nRaptor可视化算法流程图设计f←1,i←1f←
原创力文档

文档评论(0)